Как планировщик выбирает какую горутину запустить?

Middle+
209 просмотров
AFK Offer AI

Планировщик Go (GMP) сначала проверяет локальную очередь текущего P. Если там пусто — пытается украсть работу у другого P (work stealing). Также каждые ~61 итерацию проверяет глобальную очередь, чтобы горутины там не зависали. Приоритет отдаётся горутинам, которые только что разблокировались — они попадают в runnext слот P.

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

Какие тестовые фреймворки для Go существуют?