Sobes.tech
Junior — Middle

Горутина чӣ гуна мефаҳмад, ки сигнали анҷомро тавассути контекст гирифтааст?

sobes.tech AI

Ҷавоб аз AI

Gorutina, аяқталу сигналыны канал арқылы алады, ол context.Context объектісін қамтамасыз етеді. Әдетте, Done() әдісі пайдаланылады, ол контекст тоқтатылғанда жабылатын каналды қайтарады. Goroutine бұл каналды цикл немесе select ішінде тыңдап, оның жабылуына реакция жасай алады, бұл операцияның аяқталуы немесе тоқтатылуының сигналы.

Мысал:

ctx, cancel := context.WithCancel(context.Background())

go func() {
    select {
    case <-ctx.Done():
        // Контекст тоқтатылды, аяқтаймыз
        fmt.Println("Goroutine аяқталды")
        return
    // басқа жағдайлар
    }
}()

// кейінірек, аяқтауды сигналдау үшін cancel() шақырамыз
cancel()