Sobes.tech
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 и каналите се главните алатки за контрола и синхронизација на горутините.