Junior — Middle
Kako se vrši kontrola nad izvršenjem i sinhronizacijom gorutina u programu?
sobes.tech АИ
Одговор од АИ
У Go, контрола над извршавањето и синхронизацијата на горутините обично се реализира со:
- WaitGroup од пакетот
sync— овозможува да се чека завршувањето на група горутини. - Канали (channels) — се користат за пренос на податоци и сигнали меѓу горутините, обезбедувајќи синхронизација.
Пример со WaitGroup:
var wg sync.WaitGroup
wg.Add(1)
go func() {
defer wg.Done()
// работа на горутината
}()
wg.Wait() // чека завршување на горутината
Каналите овозможуваат, на пример, пренос на резултати или сигнали за завршување:
ch := make(chan int)
go func() {
ch <- 42 // испраќање на вредност
}()
вредност := <-ch // примање на вредноста, синхронизирање на горутините
Значи, WaitGroup и каналите се главните алатки за контрола и синхронизација на горутините.