Sobes.tech
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.