Вопрос проверяет понимание работы планировщика Go (Goroutine Scheduler) и различий между кооперативной и вытесняющей многозадачностью.
Короткий ответ
Go использует вытесняющую многозадачность на уровне потоков ОС, но кооперативную внутри самих горутин. Планировщик Go (GMP-модель) распределяет горутины по потокам (M), переключая их при блокировках (I/O, каналы) или через вызов runtime.Gosched().
Длинный ответ
Зарегистрироваться
Развернутый ответ доступен только зарегистрированным пользователям.