Sobes.tech
Junior — Middle

Hoe stop je de uitvoering van een goroutine na een bepaalde tijd als er geen resultaat is ontvangen?

sobes.tech AI

Antwoord van AI

In Go wordt om de uitvoering van een goroutine te stoppen na een bepaalde tijd, meestal select met een timer of een context met timeout gebruikt.

Voorbeeld met time.After:

select {
case result := <-ch:
    // resultaat verwerken
case <-time.After(2 * time.Second):
    // timeout — resultaat niet binnen 2 seconden ontvangen
}

Voorbeeld met context:

ctx, cancel := context.WithTimeout(context.Background(), 2*time.Second)
defer cancel()

select {
case result := <-ch:
    // resultaat verwerken
case <-ctx.Done():
    // timeout of annulering
}

Op deze manier, als het resultaat niet op tijd binnenkomt, kan de uitvoering worden onderbroken en de timeout worden afgehandeld.