Sobes.tech
Junior — Middle

Hogyan történik több goroutine munkájának összehangolása Go-ban?

sobes.tech MI

Válasz az MI-től

A Go nyelvben több goroutine munkájának koordinálása általában csatornák (channels) és a sync csomag segítségével történik.

  • Csatornák lehetővé teszik a goroutine-ok számára adatok cseréjét és a végrehajtás szinkronizálását, blokkolva a küldőt vagy a fogadót, amíg azok készen nem állnak.
  • sync.WaitGroup használható egy goroutine csoport befejezésének várására.
  • Mutex és más sync primitívek biztosítják a biztonságos hozzáférést a megosztott erőforrásokhoz.

Példa egy csatorna használatára szinkronizációhoz:

ch := make(chan int)
func() {
    // Munka végrehajtása
    ch <- 1 // befejezés jelzése
}()

<-ch // várakozás a jelzésre

Így a csatornák és a szinkronizációs primitívek hatékonyan koordinálják a párhuzamos feladatokat.