العودة إلى الدورة

الـ WaitGroups: انتظار الـ Goroutines

لغة Go (Golang) للخدمات المصغرة السحابية (Cloud-Native Microservices)

تنسيق مجموعات المهام

أحياناً تحتاج إلى إطلاق مهام عديدة والانتظار حتى تنتهي جميعها قبل الاستمرار.

go var wg sync.WaitGroup

for i := 0; i < 5; i++ { wg.Add(1) go func(id int) { defer wg.Done() fmt.Printf("Task %d finished\n", id) }(i) }

wg.Wait() // ينتظر حتى يتم استدعاء Done() للجميع