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.