Junior — Middle
Jak goroutine zjistí, že jí byl prostřednictvím kontextu zaslán signál o ukončení?
sobes.tech AI
Odpověď od AI
Gorutina obdrží signál o dokončení prostřednictvím kontextu pomocí kanálu, který poskytuje objekt context.Context. Obvykle se používá metoda Done(), která vrací kanál, který se uzavře při zrušení kontextu. Gorutina může tento kanál poslouchat v cyklu nebo select a reagovat na jeho uzavření, což znamená signál o dokončení nebo zrušení operace.
Příklad:
ctx, cancel := context.WithCancel(context.Background())
go func() {
select {
case <-ctx.Done():
// Kontext byl zrušen, ukončujeme
fmt.Println("Gorutina ukončena")
return
// jiné případy
}
}()
// později zavoláme cancel() k signalizaci ukončení
cancel()