5种IO模型
当应用程序需要通过操作系统进行IO通信时,一共有下面5种IO模型供选择。
(同步)阻塞IO
(同步)非阻塞IO
(同步)IO多路复用
复用IO的基本思路就是通过slect或poll、epoll 来监控多fd ,来达到不必为每个fd创建一个对应的监控线程,从而减少线程资源创建的目的。
(异步)信号驱动IO
FATAL缺点:信号I/O在大量IO操作时可能会因为信号队列溢出导致没法通知。
异步(非阻塞)IO
缺点:技术比较新,可能还有些坑没有填完;另外就是异步IO会让应用比较复杂,代码变得难以理解(异步不符合人的思考习惯)