Junior — Middle
In welke gevallen stopt een goroutine met uitvoeren en geeft de controle door aan een andere?
sobes.tech AI
Antwoord van AI
In Go stopt een goroutine met uitvoeren en geeft de controle door aan een andere goroutine in de volgende gevallen:
- Wanneer de goroutine expliciet een functie aanroept die haar blokkeert (bijvoorbeeld lezen uit een kanaal dat leeg is).
- Bij gebruik van het sleutelwoord
runtime.Gosched(), dat vrijwillig de processor aan andere goroutines overdraagt. - Wanneer de goroutine haar functie beëindigt (terugkeert uit de functie), stopt ze met uitvoeren.
De Go-planner voor goroutines schakelt automatisch tussen goroutines om gelijktijdigheid te garanderen. Bijvoorbeeld, bij blokkering op invoer-/uitvoerbewerkingen of wachten op gegevens uit een kanaal, wordt de huidige goroutine gepauzeerd en wordt de controle overgedragen aan een andere.