Junior — Middle
În ce cazuri o goroutine încetează execuția și transferă controlul către alta?
sobes.tech AI
Răspuns de la AI
În Go, o gorutină încetează execuția și transferă controlul către o altă gorutină în următoarele cazuri:
- Când gorutina apelează explicit o funcție care o blochează (de exemplu, citirea dintr-un canal gol).
- La utilizarea cuvântului cheie
runtime.Gosched(), care cedează voluntar procesorul altor gorutine. - Când gorutina își încheie funcția (se întoarce din funcție), încetează executarea.
Planificatorul de gorutine din Go schimbă automat execuția între gorutine, asigurând concurența. De exemplu, atunci când se blochează la operații de intrare/ieșire sau se așteaptă date dintr-un canal, gorutina curentă este suspendată, iar controlul este transferat către alta.