Какая многозадачность в Go?

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

В Go используется кооперативная многозадачность с элементами вытеснения (preemptive). Горутины — это green threads, которые мультиплексируются на OS-потоки планировщиком Go (модель M:N).

Исторически планировщик был чисто кооперативным — переключение только в точках yields (вызовы функций, операции с каналами, syscall). С Go 1.14 добавили асинхронное вытеснение через сигналы — теперь планировщик может прервать даже tight loop без вызовов функций.

Модель GMP: G (goroutine) — задача, M (machine) — OS-поток, P (processor) — контекст выполнения с локальной очередью горутин.

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

Где размещать описание интерфейса?