تنسيق مجموعات المهام
أحياناً تحتاج إلى إطلاق مهام عديدة والانتظار حتى تنتهي جميعها قبل الاستمرار.
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() للجميع