Автор разбирает устройство select в Go как совместную работу компилятора и рантайма.
Компилятор переписывает пустые, одиночные и одноканальные с default в простые операции, минуя selectgo. Для общего случая компилятор подготавливает массив кейсов и передает управление в selectgo, который в случайном порядке проверяет готовые каналы, а если ни один не готов - регистрирует горутину на всех каналах одновременно и паркует ее. Когда один из каналов срабатывает, selectgo просыпается, снимает регистрацию с остальных каналов и возвращает индекс выигравшего кейса.
26.05.2026
Похожее
23.05.2026
HTTP/2 h2c
Обычно HTTP/2 работает только поверх TLS через HTTPS. Но h2c позволяет использов...
22.05.2026
let-go
Ну вы поняли, сегодня пятница и для вас аж второй язык программирования за день ...
22.05.2026
Язык rye
Rye - это такой небольшой встраиваемый язык, который удобно использовать для кон...
21.05.2026
Врап
Автор предлагает паттерн для Go-сервисов: вынести обвязку и все связанное с деко...