В модели GMP (Golang's GMP — это внутренняя модель планировщика goroutine, M — OS thread, P — processor) реализовано два основных типа очередей:
Какие очереди есть в GMP-модели?
В модели GMP (Golang's GMP — это внутренняя модель планировщика goroutine, M — OS thread, P — processor) реализовано два основных типа очередей:
Короткий ответ
Что ответить на собеседовании
Подробный разбор
Ответ с пояснениями
В модели GMP (Golang's GMP — это внутренняя модель планировщика goroutine, M — OS thread, P — processor) реализовано два основных типа очередей:
- Local run queue — локальная очередь задач (goroutine) для каждого P (processor). Каждая P имеет свою очередь, из которой она берёт задачи для выполнения.
- Global run queue — глобальная очередь задач, общая для всех P, куда попадают задачи, если локальные очереди переполнены или при балансировке нагрузки.
Таким образом, в модели GMP реализованы две основные очереди для планирования goroutine: локальная и глобальная.