标签: kqueue
与该标签相关的所有文章 "kqueue".
-
mio(三):平台后端-epoll、kqueue、IOCP
mio 在三个平台上的封装策略完全不同。Linux epoll 和 macOS kqueue 都是 Reactor 模型的原生映射,mio 的封装很薄。Windows IOCP 是 Proactor 模型,mio 必须用 AFD(Auxiliary Function Driver)这个底层驱动来模拟 Reactor 语义——这是 mio 中最复杂的代码路径。
-
Go 运行时(三):netpoller 如何用 epoll 与 gopark 跑异步 I/O
Go 运行时在创建网络 socket 时将其设为非阻塞,当 Read/Write 返回 EAGAIN 时,通过 gopark 挂起 goroutine(不占 OS 线程),将 fd 注册到 epoll/kqueue(边缘触发),就绪后通过调度器的 findRunnable 或 sysmon 唤醒 goroutine 重试——用户写的是同步代码,运行时跑的是异步 I/O。
-
asio(五):操作系统I/O多路复用-epoll、kqueue、IOCP如何被统一
Asio 通过编译期条件选择 reactor 实现(epollreactor / kqueuereactor / winiocpiocontext),每种实现共享统一的内部接口(registerdescriptor、startop、cancelops、run、interrupt)。Linux/macOS 是 Reactor 之上模拟 Proactor,Windows 是原生 Proactor 直通 IOCP。io_uring 作为第四种后端在 Boost 1.78+ 可选启用。