WaitGroup.Wait() için zaman aşımı atamanın deyimsel yolu nedir?WaitGroup.Wait() için zaman aşımı
Bunu yapmak istememin sebebi, 'zamanlayıcı'mı potansiyel bir bekçinin' işçisini 'beklemek zorunda kalmaktan korumaktır. Bu, bazı felsefi sorulara yol açmaktadır (diğer bir deyişle, çalışanlar işe yaramazsa sistem nasıl güvenilir bir şekilde devam edebilir?), Ama bence bu sorunun kapsamı dışında kalıyor.
Vereceğim bir cevabım var. Şimdi onu yazdım, o kadar da kötü görünmüyor ama yine de olması gerekenden daha kıvrık geliyor. Daha basit, daha akılcı, hatta WaitGroups kullanmayan alternatif bir yaklaşımın mevcut olup olmadığını bilmek isterim.
Ta.
sayesinde çok kapsamlı bir cevap. Sonunda bir WaitGroup kullanmayı tamamen bıraktım ve bunun yerine tek bir kanal kullandım. Kodum daha basit, daha açık ve 'daha az sorunlu' oldu. Kodum yineleme sayısını sayabilirdi, bu yüzden select deyimini sabit sayıda kullanabilirdim, sonra zaman aşımı için tek bir NewTimer kullanabiliyordum. Tamlık için, zaman içerisinde başka bir cevap ekleyeceğim. – laher
bu sadece # go-fındık de geçiyor Bilginize beri Yani, biraz: Bu irade * değil * çalışma 'wg.Add' aramalar goroutine içine * * Eğer. Sadece birisinin bu kodu sorunla benzer bir şekilde kullanması durumunda yorum yapıyor # go-nuts sadece çözüldü! –
eğer 'wg.Wait()' asla geri, bir goroutine sızan geliyor? 'Wg.Wait()' döndürür hiçbir zaman – coanor