Sobes.tech
Junior — Middle

Hoe weet een goroutine dat deze een signaal voor voltooiing via de context heeft ontvangen?

sobes.tech AI

Antwoord van AI

De goroutine ontvangt het signaal van voltooiing via een context met behulp van een kanaal, dat het context.Context object biedt. Gewoonlijk wordt de methode Done() gebruikt, die een kanaal retourneert dat wordt gesloten wanneer de context wordt geannuleerd. De goroutine kan dit kanaal in een lus of select luisteren en reageren op de sluiting ervan, wat een signaal is dat de operatie is voltooid of geannuleerd.

Voorbeeld:

ctx, cancel := context.WithCancel(context.Background())

go func() {
    select {
    case <-ctx.Done():
        // De context is geannuleerd, beëindigen
        fmt.Println("Goroutine beëindigd")
        return
    // andere gevallen
    }
}()

// later roepen we cancel() aan om het einde te signaleren
cancel()