Junior — Middle
In welke situaties vindt automatische overschakeling van uitvoering plaats bij het gebruik van goroutines?
sobes.tech AI
Antwoord van AI
In Go vindt de automatische uitvoering switch plaats tussen goroutines in de volgende situaties:
- Wanneer een goroutine een functie aanroept die de uitvoering blokkeert, bijvoorbeeld lezen uit een kanaal, schrijven naar een kanaal of een systeemaanroep die de thread blokkeert.
- Bij het aanroepen van de functie runtime.Gosched(), die expliciet de controle aan de planner overdraagt om over te schakelen naar een andere goroutine.
- Wanneer een goroutine eindigt, schakelt de planner over naar een andere gereed zijnde goroutine.
De Go-runtime bevat een planner die de uitvoering van goroutines verdeelt over de beschikbare systeemthreads (M). De switch gebeurt automatisch om de CPU efficiënt te gebruiken en te voorkomen dat de hele programma-uitvoering wordt geblokkeerd tijdens het wachten op invoer/uitvoer- of synchronisatie-operaties.