Как работает goroutine scheduling loop?

Senior
313 просмотров
AFK Offer AI

Scheduling loop — это бесконечный цикл, в котором крутится каждый M (системный тред). Цикл: взять G из локальной очереди P, если пусто — украсть из чужой P (work stealing), если и там пусто — проверить глобальную очередь, если вообще нечего делать — припарковать M. Найденная горутина выполняется до момента вытеснения: syscall, блокировка на канале, preemption signal. После чего управление возвращается в scheduling loop и цикл повторяется. Это функция schedule() в runtime.

Следующий вопрос

Что такое goroutine dump?