Sobes.tech
Senior

İki worker()-ın icrasını ardıcıl yerinə paralel etmək necə (6 saniyə → 3 saniyə)?

sobes.tech Süni İntellekt

AI-dan cavab

Go dilində funksiyaların paralel icrası üçün goroutine-lərdən istifadə etmək mümkündür. Əgər iki worker() funksiyanız hazırda ardıcıl şəkildə icra olunursa və ümumi olaraq 6 saniyə çəkirsə, onları ayrı-ayrı goroutine-lərdə başlatmaqla, onlar paralel icra olunacaq və ümumi vaxt təxminən 3 saniyəyə azaldılacaq.

Nümunə:

func() {
    worker()
}()
func() {
    worker()
}()

// Hər iki goroutine-in tamamlanmasını gözləmək üçün sync.WaitGroup istifadə edin
var wg sync.WaitGroup
wg.Add(2)
func() {
    defer wg.Done()
    worker()
}()
func() {
    defer wg.Done()
    worker()
}()
wg.Wait()

Beləliklə, funksiyaları goroutine-lərdə başlatmaq və WaitGroup ilə sinxronlaşdırmaq onların paralel icrasını təmin edir.