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.