Junior — Middle
В кои случаи една горутина прекратява изпълнението си и предава управлението на друга?
sobes.tech AI
Отговор от AI
В Go, горутината прекратява изпълнението си и прехвърля управлението към друга горутина в следните случаи:
- Когато горутината явно извиква функция, която я блокира (например, четене от канал, ако каналът е празен).
- При използване на ключовата дума
runtime.Gosched(), която доброволно предава процесора на други горутини. - Когато горутината завършва своята функция (връща се от функцията), тя спира изпълнението.
Планировчикът на горутините в Go автоматично превключва изпълнението между горутините, осигурявайки конкуренция. Например, при блокиране на операции за вход/изход или при очакване на данни от канал, текущата горутина се спира, а управлението се прехвърля към друга.