Sobes.tech
Junior — Middle

Kako se vrši usklađivanje rada više gorutina u Go?

sobes.tech АИ

Одговор од АИ

U Go-u, koordinacija rada više gorutina obično se vrši pomoću kanala (channels) i paketa sync.

  • Kanali omogućavaju gorutinama razmenu podataka i sinhronizaciju izvršavanja, blokirajući pošiljaoca ili primaoca dok nisu spremni.
  • sync.WaitGroup se koristi za čekanje da grupa gorutina završi.
  • Mutex i drugi primitives iz sync obezbeđuju siguran pristup zajedničkim resursima.

Primer korišćenja kanala za sinhronizaciju:

ch := make(chan int)
func() {
    // Obavljanje posla
    ch <- 1 // signal o završetku
}()

<-ch // čekanje signala

Na ovaj način, kanali i primitives za sinhronizaciju omogućavaju efikasno koordinisanje paralelnih zadataka.