Junior — Middle
Belirli bir süre sonunda sonuç alınmazsa, goroutine nasıl durdurulur?
sobes.tech yapay zeka
AI'dan gelen yanıt
Go dilinde, belirli bir süre sonra bir goroutine'in yürütülmesini durdurmak için genellikle select ile bir zamanlayıcı veya zaman aşımı ile bir bağlam kullanılır.
time.After ile örnek:
select {
case result := <-ch:
// sonucu işle
case <-time.After(2 * time.Second):
// zaman aşımı — sonuç 2 saniye içinde alınmadı
}
Bağlam ile örnek:
ctx, cancel := context.WithTimeout(context.Background(), 2*time.Second)
defer cancel()
select {
case result := <-ch:
// sonucu işle
case <-ctx.Done():
// zaman aşımı veya iptal
}
Bu şekilde, eğer sonuç zamanında gelmezse, yürütme durdurulabilir ve zaman aşımı ele alınabilir.