Junior — Middle
Context.Done metodunun asenkron işlemlerin tamamlanmasındaki rolü nedir?
sobes.tech yapay zeka
AI'dan gelen yanıt
Context.Done() yöntemi, bağlam iptal edildiğinde veya süresi dolduğunda kapanan bir kanal döndürür. Bu, asenkron işlemlerin tamamlanma sinyalini algılamasına ve düzgün şekilde kesilmesine olanak tanır.
Örneğin, bir goroutine içinde bu kanalı dinleyebilir ve bağlam iptal edildiğinde işi sonlandırabilirsiniz:
ctx, cancel := context.WithCancel(context.Background())
go func() {
select {
case <-ctx.Done():
// Bağlam iptal edildi, işi sonlandır
return
case data := <-dataCh:
// Veriyi işle
}
}()
// Daha sonra, goroutine'yi durdurmak için cancel() çağrılır
cancel()
Bu şekilde, Context.Done() güvenli ve zamanında asenkron işlemlerin sonlandırılması için bir sinyal görevi görür.