Автор разбирает устройство select в Go как совместную работу компилятора и рантайма.
Компилятор переписывает пустые, одиночные и одноканальные с default в простые операции, минуя selectgo. Для общего случая компилятор подготавливает массив кейсов и передает управление в selectgo, который в случайном порядке проверяет готовые каналы, а если ни один не готов - регистрирует горутину на всех каналах одновременно и паркует ее. Когда один из каналов срабатывает, selectgo просыпается, снимает регистрацию с остальных каналов и возвращает индекс выигравшего кейса.
26.05.2026
Похожее
28.09.2026
C на Go
Интересный пропозал - добавить возможность сборки Go-пакетов, использующих cgo д...
25.09.2026
Бенчим джейсон
Автор на реальном API с нагрузкой 50M запросов/сутки)сравнивает производительнос...
24.09.2026
Rune
Команда Unstable Build заопенсорсила свою нативную IDE Rune, написанную на Go. ...
23.09.2026
Специализированные аллокаторы
В Go 1.27 появилась оптимизация выделения памяти для объектов размером до 80 бай...