我最近一直在尝试让我的大脑围绕异步I/O,也就是说, epoll() 关于Linux和 kqueue() 关于FreeBSD;而不是创建多个线程并使用 select() ,您只能创建一个线程,但仍然可以同时响应多个I/O事件。
epoll()
kqueue()
select()
我一直在试图从机器代码的深层次理解它是如何工作的,但我遇到了麻烦。 (也许我的谷歌Fu只是缺少。) 我似乎根本找不到任何与异步I/O相关的CPU指令——那么它是如何工作的呢?