Senior
İki worker()'ın yürütülmesini ardışık yerine paralel hale nasıl getirilir (6 saniye → 3 saniye)?
sobes.tech yapay zeka
AI'dan gelen yanıt
Go dilinde, fonksiyonların paralel yürütülmesi için goroutine'ler kullanılabilir. Diyelim ki iki worker() fonksiyonunuz var ve şu anda sıralı olarak çalışıyorlar ve toplamda 6 saniye sürüyorlar. Bunları ayrı goroutine'lerde başlattığınızda, paralel çalışacaklar ve toplam süre yaklaşık 3 saniyeye düşecektir.
Örnek:
func() {
worker()
}()
func() {
worker()
}()
// Her iki goroutine'in tamamlanmasını beklemek için sync.WaitGroup kullanın
var wg sync.WaitGroup
wg.Add(2)
func() {
defer wg.Done()
worker()
}()
func() {
defer wg.Done()
worker()
}()
wg.Wait()
Bu şekilde, fonksiyonları goroutine'lerde başlatmak ve WaitGroup ile senkronize etmek, onların paralel olarak çalışmasını sağlar.