Автор разбирает устройство select в Go как совместную работу компилятора и рантайма.
Компилятор переписывает пустые, одиночные и одноканальные с default в простые операции, минуя selectgo. Для общего случая компилятор подготавливает массив кейсов и передает управление в selectgo, который в случайном порядке проверяет готовые каналы, а если ни один не готов - регистрирует горутину на всех каналах одновременно и паркует ее. Когда один из каналов срабатывает, selectgo просыпается, снимает регистрацию с остальных каналов и возвращает индекс выигравшего кейса.
26.05.2026
Похожее
05.06.2026
TigerFS
Файловая система — это просто API. А TigerFS — это файловая система, работающая ...
04.06.2026
Иггдрасиль
В статье про использование Yggdrasil в качестве встраиваемой Go-библиотеки. ...
03.06.2026
Мультиплеер
В статье автор рассказывает про архитектуру управления состоянием своей многопол...
02.06.2026
httptrace
Пакет net/http/httptrace из стандартной библиотеки Go позволяет отслеживать внут...