IO多路复用三种实现方式——select、poll、epoll

2021-08-17  本文已影响0人  晚歌歌

简介

select、poll、epoll都属于IO多路复用机制的函数实现,IO模型具体介绍查看之前文章

select

select函数通过遍历fdset,来找到就绪的描述符

缺点:

poll

和select函数一样,poll通过轮询pollfd来获取就绪的描述符
但是它没有最大连接数的限制,原因是它是基于链表来存储的,但另外两个缺点仍然存在

epoll

epoll可以理解为event poll,采用基于事件的就绪通知方式,只要遍历那些被内核IO事件异步唤醒而加入就绪链表的描述符就行了,解决了以上select存在的三个缺点

epoll在底层实现了自己的高速缓存区,并且建立了一个红黑树用于存放socket,另外维护了一个链表用来存放准备就绪的事件

epoll优点

上一篇下一篇

猜你喜欢

热点阅读