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()