Junior — Middle
Cum află o goroutine că i s-a transmis un semnal de finalizare prin context?
sobes.tech AI
Răspuns de la AI
Gorutina primește semnalul de finalizare prin intermediul unui context folosind un canal, care furnizează obiectul context.Context. De obicei, se folosește metoda Done(), care returnează un canal care se închide atunci când contextul este anulat. Gorutina poate asculta acest canal într-un ciclu sau select și poate reacționa la închiderea sa, ceea ce indică un semnal de finalizare sau anulare a operației.
Exemplu:
ctx, cancel := context.WithCancel(context.Background())
go func() {
select {
case <-ctx.Done():
// Contextul a fost anulat, încheiem
fmt.Println("Gorutina a fost finalizată")
return
// alte cazuri
}
}()
// mai târziu, apelăm cancel() pentru a semnala finalizarea
cancel()