IO 设计模式

Linux

IO 中分为 阻塞IO、非阻塞IO、多路IO、信号驱动IO、异步IO。其中阻塞IO、非阻塞IO、多路复用IO、信号驱动IO都属于同步IO。
同步IO都是等待响应,异步IO是去做别的。
模式名称很明显,其中非阻塞IO只是代表不断去查有没有返回值,不代表交出 CPU。

多路复用IO

有 epoll、poll、select 实现。
select 对所有流无差别轮询,有最大限制。
poll 对所有流轮询,没有最大限制。
epoll 会在通过事件 fd 来通知完成。

信号驱动IO

socket 连接,upd 发送通知信号。

异步IO

不需要再去读,等通知到了后直接可以使用。一般线程池实现。