epoll — механизм Linux для мониторинга множества файловых дескрипторов. Go netpoller использует epoll (или kqueue на macOS, IOCP на Windows) под капотом. Когда горутина блокируется на сетевом I/O, дескриптор добавляется в epoll через epoll_ctl, горутина паркуется. Отдельный тред (или sysmon) вызывает epoll_wait, который эффективно ждёт событий на тысячах дескрипторов. Когда событие приходит, соответствующая горутина возвращается в очередь шедулера. Это O(1) на событие вместо O(n) у select/poll.
Что такое epoll в контексте Go?
Senior
235 просмотровAFK Offer AI
Как обработать CSV в Go?