Go runtime — среда выполнения, встроенная в каждый бинарник. Включает: scheduler, garbage collector, memory allocator, goroutine management.
Scheduler работает по модели GMP:
- G (Goroutine): задача для выполнения
- M (Machine): поток ОС
- P (Processor): логический процессор, GOMAXPROCS штук
Точки вытеснения: вызовы функций, channel operations, syscalls. С Go 1.14 — асинхронная преемптивность через сигналы (горутина без вызовов тоже прерывается). GOMAXPROCS по умолчанию = кол-во CPU.