epoll и kqueue. Как Go использует асинхронный I/O.

Ответ

epoll (Linux) и kqueue (BSD/macOS) - механизмы мультиплексирования I/O: один поток ждет события на множестве дескрипторов. В Go netpoller абстрагирует это: горутина блокируется на Read/Write, runtime регистрирует дескриптор в netpoller и переключает горутину на другую; при готовности I/O горутина возобновляется. Пользовательский код синхронный (блокирующий вызов), под капотом асинхронность.

🧠Квиз 🏆Лидеры 🎯Собесед. 📖Вопросы 📚База зн.