同步阻塞、同步非阻塞、同步多路复用、异步阻塞(没有此情况)、异步非阻塞
- 同步:线程自己去获取结果(一个线程)
- 异步:线程自己不去获取结果,而是由其它线程送结果(至少两个线程)
当调用一次 channel.read 或 stream.read 后,会切换至操作系统内核态来完成真正数据读取,而读取又分为两个阶段,分别为:
- 等待数据阶段
- 复制数据阶段
阻塞 IO

非阻塞 IO
客户端反复去轮询获取结果<br />
多路复用
事件机制,可能一次等待期间会产生多个事件,收到这多个事件后客户端可以一次性处理。
信号驱动
异步 IO

- 阻塞 IO vs 多路复用
🔖 参考
UNIX 网络编程 - 卷 I