Junior — Middle
Comment une goroutine reconnaît-elle que son exécution a été annulée via le contexte?
sobes.tech IA
Réponse de l'IA
Une goroutine en Go reconnaît l'annulation via le contexte (context.Context) en utilisant le canal Done(), qui se ferme lors de l'annulation.
Lorsqu'un contexte avec annulation est créé (par exemple, via context.WithCancel ou context.WithTimeout), la goroutine peut écouter le canal ctx.Done():
ctx, cancel := context.WithCancel(context.Background())
// Démarrer la goroutine
go func() {
select {
case <-ctx.Done():
// Le contexte a été annulé, il faut terminer
fmt.Println("Goroutine annulée")
return
default:
// Exécuter le travail principal
}
}()
// Annuler le contexte
cancel()
Ainsi, la goroutine apprend l'annulation en vérifiant le canal Done() et peut terminer correctement son travail.