- 主题:C++的异步模型以后就是sender/receiver这个框架了
各种事件工具都是可以的。我感兴趣怎么用IOCP。
至于你说的语法糖,当然可以用,习惯问题,我看不出来必要性。
语法解释,词法分析,我也常用。
看了你的流程,感觉就是主流程与子流程掉了个个,可以,但不是必须。
【 在 hgoldfish 的大作中提到: 】
: 首先,可以不存在事件循环。协程之间自行切换。例子是 generator 模式。我在写编译器的时候,lexer 和 compiler 都是协程,它俩来回切换。
: 其次,存在没有 io poll 的事件循环。也就是纯粹的 timer 循环。事件循环里面只有 timer 事件,没有其它事件。
: 最后呢,事件循环不一定用 epoll. windows 下也可以用 iocp, linux 下还有 io_uring 等等。
: ...................
--
修改:ylh1969 FROM 221.218.61.*
FROM 221.218.61.*
不是语法糖。我说的也是 c++ 的啊。
我这边有个核心工具,用 c++ 写的 olap 时间序列数据库。它包含一个表达式引擎。
里面的 lexer 和 compiler 就是用两个协程来回切换,没有用到任何事件循环。
【 在 ylh1969 的大作中提到: 】
: 各种事件工具都是可以的。
: 至于你说的语法糖,当然可以用,习惯问题,我看不出来必要性。
: 语法解释,词法分析,我也常用。
: ...................
--
FROM 27.152.110.*
可以可以,我没有任何异议。
你说的io_uring,AI了一下,是个好东西。我算是抛砖引玉,谁感兴趣的,把epoll换成io_uring。
我用过kqueue,比epoll好用。
【 在 hgoldfish 的大作中提到: 】
: 不是语法糖。我说的也是 c++ 的啊。
: 我这边有个核心工具,用 c++ 写的 olap 时间序列数据库。它包含一个表达式引擎。
: 里面的 lexer 和 compiler 就是用两个协程来回切换,没有用到任何事件循环。
: ...................
--
FROM 221.218.61.*
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.*