Sobes.tech
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.