IO模型
一、BIO(阻塞IO)
缺点:性能低。
二、NIO(非阻塞IO)
优点:相对BIO性能提升。缺点:频繁的轮询,会消耗CPU资源。
三、多路复用IO模型 同步阻塞
IO复用模型核心思路:系统给我们提供一类函数(如select、poll、epoll函数),它们可以同时监控多个fd的操作,
任何一个返回内核数据就绪,应用进程再发起recvfrom系统调用。
1.seclet 底层实现:数组
缺点:存在监听IO连接数限制。
2.poll 底层实现:链表
优点:连接数不受限。 缺点:性能低。
3.epoll 底层实现:双向链表+红黑树 事件驱动
采用监听事件回调的机制,代替遍历文件描述符。
优点:连接数不受限且性能高。
4.seclet、poll与epoll的区别:
四、信号驱动IO模型
五、AIO(异步IO模型)
六、阻塞、非阻塞、同步、异步IO划分