Автор разбирает устройство select в Go как совместную работу компилятора и рантайма.
Компилятор переписывает пустые, одиночные и одноканальные с default в простые операции, минуя selectgo. Для общего случая компилятор подготавливает массив кейсов и передает управление в selectgo, который в случайном порядке проверяет готовые каналы, а если ни один не готов - регистрирует горутину на всех каналах одновременно и паркует ее. Когда один из каналов срабатывает, selectgo просыпается, снимает регистрацию с остальных каналов и возвращает индекс выигравшего кейса.
26.05.2026
Похожее
07.09.2026
У нас отмена!
Статья разбирает, как пакет singleflight в Go предотвращает лавину запросов к кэ...
05.09.2026
DDD во времена AI
Статья утверждает, что с ростом AI-кодинга идеи Domain-Driven Design становятся ...
03.09.2026
Конкурентный сервер на Go
Это восьмая часть серии о конкурентных сетевых серверах, в этот раз посвященная ...
03.09.2026
Горутины повсюду
Частенько мы пишем Go-сервисы, не задумываясь о том, кто и как запускает наши го...