Автор разбирает устройство select в Go как совместную работу компилятора и рантайма.
Компилятор переписывает пустые, одиночные и одноканальные с default в простые операции, минуя selectgo. Для общего случая компилятор подготавливает массив кейсов и передает управление в selectgo, который в случайном порядке проверяет готовые каналы, а если ни один не готов - регистрирует горутину на всех каналах одновременно и паркует ее. Когда один из каналов срабатывает, selectgo просыпается, снимает регистрацию с остальных каналов и возвращает индекс выигравшего кейса.
26.05.2026
Похожее
24.08.2026
Поговорим про PGO
Profile-guided optimization (PGO) заменяет эвристические догадки компилятора реа...
22.08.2026
Время читать код
Автор утверждает, что главное узкое место разработки незаметно сместилось с напи...
21.08.2026
Go для Dreamcast
Я только на прошлой неделе публиковал пост, в котором искал инструмент для прогр...
20.08.2026
Батчинг
Статья показывает, как в Go аккуратно батчить данные, поступающие в реальном вре...