Как работает планировщик задач в Go (кооперативная vs вытесняющая многозадачность)?
Что такое кооперативная многозадачность?
Специализация
Python Backend Developer
Java Backend Developer
Node.js Backend Developer
Golang Backend Developer
React Frontend Developer
Выберите навыки
React
JavaScript
Git
Redux
Webpack
Сложность
1-3
4-6
7-8
9-10
Рейтинг вопросов
1
2
3
4
5
Подпишись на React Developer в телеграм
Рейтинг:
2
Сложность:
6
Go использует вытесняющую многозадачность на уровне потоков ОС, но кооперативную внутри самих горутин. Планировщик Go (GMP-модель) распределяет горутины по потокам (M), переключая их при блокировках (I/O, каналы) или через вызов runtime.Gosched().
Рейтинг:
4
Сложность:
6
Кооперативная многозадачность — это модель, при которой задачи сами добровольно передают управление, обычно через await. Планировщик не прерывает задачу принудительно, как это происходит в потоках. Благодаря этому уменьшаются накладные расходы и упрощается синхронизация. Такая модель широко используется в asyncio