> Куда попадает функция при вызове go в Go? В какую очередь? (Go)
Уровень: middle · Роль: backend · Язык: Go · Категория: Технические вопросы
Компании: InDrive
Стек: Go
> Пример ответа
При вызове go func() в Go функция попадает в глобальную очередь (global run queue) планировщика, если ни один из потоков (M) не может немедленно принять её в свою локальную очередь (local run queue). Локальные очереди привязаны к каждому логическому процессору (P). Планировщик Go (GMP-модель) распределяет горутины так: сначала проверяется локальная очередь текущего P, затем - глобальная очередь, и в конце - кража (work stealing) из очередей других P. Таким образом, go не отправляет функцию в какую-то одну фиксированную очередь - она может попасть либо в локальную очередь текущего P (если там есть место), либо в глобальную, если локальная переполнена или P занят.
> Похожие задачи по Go
Как исправить SQL запрос, который собирает строку без контекста?
Можно ли сделать длину канала для задач равной 10?
Что происходит с паниками в Go?
Как происходит эвакуация элементов в хэш-таблице?
> Похожие задачи по backend
Как исправить SQL запрос, который собирает строку без контекста?
Можно ли сделать длину канала для задач равной 10?
Что происходит с паниками в Go?
Как происходит эвакуация элементов в хэш-таблице?
> ГОТОВЫ К СЛЕДУЮЩЕМУ СОБЕСЕДОВАНИЮ?
Запустите тренировочную сессию с ИИ и получите детальную обратную связь, чтобы увереннее проходить реальные интервью