首先,可以不存在事件循环。协程之间自行切换。例子是 generator 模式。我在写编译器的时候,lexer 和 compiler 都是协程,它俩来回切换。
其次,存在没有 io poll 的事件循环。也就是纯粹的 timer 循环。事件循环里面只有 timer 事件,没有其它事件。
最后呢,事件循环不一定用 epoll. windows 下也可以用 iocp, linux 下还有 io_uring 等等。
【 在 ylh1969 的大作中提到: 】
: 这是紧密关联的两件事。协程之所以需要切换,就是因为IO不能顺利完成(或者说,需要等待某种事件)。我一直强调,线程调度,协程调度,核心就是事件循环。我用epoll调度。
--
FROM 27.152.110.*