Junior — Middle
Ako gorutina zistí, že jej bol odoslaný signál o ukončení cez kontext?
sobes.tech AI
Odpoveď od AI
Gorutina dostáva signál o ukončení prostredníctvom kontextu pomocou kanála, ktorý poskytuje objekt context.Context. Zvyčajne sa používa metóda Done(), ktorá vracia kanál, ktorý sa zatvorí pri zrušení kontextu. Gorutina môže počúvať tento kanál v slučke alebo select a reagovať na jeho zatvorenie, čo znamená signál o ukončení alebo zrušení operácie.
Príklad:
ctx, cancel := context.WithCancel(context.Background())
go func() {
select {
case <-ctx.Done():
// Kontext bol zrušený, ukončujeme
fmt.Println("Gorutina ukončená")
return
// iné prípady
}
}()
// neskôr voláme cancel() na signalizáciu ukončenia
cancel()