Sobes.tech
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()