Junior — Middle
Kako gorutina saznaje da joj je poslat signal za završetak putem konteksta?
sobes.tech АИ
Одговор од АИ
Gorutina prima signal o završetku putem konteksta pomoću kanala, koji pruža objekat context.Context. Obično se koristi metoda Done(), koja vraća kanal koji se zatvara kada se kontekst otkaže. Gorutina može slušati ovaj kanal u petlji ili select i reagovati na njegovo zatvaranje, što označava signal o završetku ili otkazivanju operacije.
Primer:
ctx, cancel := context.WithCancel(context.Background())
go func() {
select {
case <-ctx.Done():
// Kontekst je otkazan, završavamo
fmt.Println("Gorutina završena")
return
// drugi slučajevi
}
}()
// kasnije pozivamo cancel() da bismo signalizirali završetak
cancel()