io_uring 基本工作原理
环形缓冲区:包含两个核心环形队列——提交队列(SQ)和完成队列(CQ)。
提交请求:用户将 I/O 请求(如读、写)放入 SQ,通知内核处理。
内核处理:内核从 SQ 取出请求并执行,完成后将结果放入 CQ。
获取结果:用户从 CQ 中读取完成的请求结果,进行后续处理。
从cq取,得有事件通知吧?
【 在 hgoldfish 的大作中提到: 】
: 首先,可以不存在事件循环。协程之间自行切换。例子是 generator 模式。我在写编译器的时候,lexer 和 compiler 都是协程,它俩来回切换。
: 其次,存在没有 io poll 的事件循环。也就是纯粹的 timer 循环。事件循环里面只有 timer 事件,没有其它事件。
: 最后呢,事件循环不一定用 epoll. windows 下也可以用 iocp, linux 下还有 io_uring 等等。
: ...................
--
修改:ylh1969 FROM 221.218.61.*
FROM 221.218.61.*