Junior — Middle
120
Kokiais atvejais viena gorutina baigia vykdyti ir perduoda valdymą kitai?
Atsakymas iš AI
sobes.tech AI
В Go горутина прекращает выполнение и передает управление другой горутине в следующих случаях:
- Когда горутина явно вызывает функцию, которая блокирует её (например, чтение из канала, если канал пуст).
- При использовании ключевого слова
runtime.Gosched(), которое добровольно уступает процессор другим горутинам. - Когда горутина завершает свою функцию (возвращается из функции), она прекращает выполнение.
Go планировщик горутин автоматически переключает выполнение между горутинами, обеспечивая конкурентность. Например, при блокировке на операции ввода-вывода или ожидании данных из канала текущая горутина приостанавливается, и управление передается другой.