Junior — Middle
როგორ ხორციელდება კონტროლი და სინქრონიზაცია გორუტინების პროგრამაში?
sobes.tech AI
პასუხი AI-სგან
Go dilində, goroutine-lərin icrasını nəzarət etmək və sinxronizasiya etmək adətən aşağıdakı vasitələrlə həyata keçirilir:
- WaitGroup
syncpaketindən — goroutine qrupunun tamamlanmasını gözləməyə imkan verir. - Kanal (channels) — goroutine-lər arasında məlumat və siqnalların ötürülməsi üçün istifadə olunur, sinxronizasiya təmin edir.
WaitGroup ilə nümunə:
var wg sync.WaitGroup
wg.Add(1)
go func() {
defer wg.Done()
// goroutine işi
}()
wg.Wait() // goroutine-in tamamlanmasını gözləyirik
Kanal vasitəsilə, məsələn, nəticələr və ya tamamlanma siqnalları ötürülə bilər:
ch := make(chan int)
go func() {
ch <- 42 // dəyərin göndərilməsi
}()
qiymət := <-ch // dəyərin alınması, sinxronizasiya edir goroutine-ləri
Beləliklə, WaitGroup və kanallar goroutine-lərin nəzarəti və sinxronizasiyası üçün əsas vasitələrdir.