select和epoll的区别

区块链毕设网qklbishe.com为您提供问题的解答

select和epoll的区别

区别有:1、select在每次被调用的时候,都会讲所有fd从用户态转换成内核态,而epoll只是在事件注册的时候只拷贝一次fd而已。提高了效率。 2、对于select来说,在每次醒着的时候,都需要将整个fd遍历一遍,而对于epoll来说,只需要在current的时候挂一遍fd,然后设置一个回调函数,当设备准备完成时,就调用一个回调函数将对应的文件描述符返还给进程,所以在时间上要大大的提高于select。 3、select的文件描述符的上限默认是1024,但是epoll没有这个限制,可以远大于1024,因为它只和系统的内存大小有关,而不受限于一个定值。
13:20
select和epoll都属于IO多路复用,其目的是为了减小系统的开销。select所支持的文件描述符太少,默认为1024。每次调用时需要把fd集合从用户态拷贝到内核态,且内核需要遍历所有的fd,这在fd很多的时候会造成大的开销。epoll相比较与select来说,是其增强版,没有描述符的限制。epoll使用一个文件描述符管理多个描述符,将用户关系的文件描述符的事件存放到内核的事件表中,使得用户空间与内核空间的拷贝只需要一次。
59:57

以上就是关于问题select和epoll的区别的答案

欢迎关注区块链毕设网-
专业区块链毕业设计成品源码,定制。

区块链NFT链游项目方科学家脚本开发培训

承接区块链项目定制开发

微信:btc9767

QQ :1330797917

TELEGRAM: BTCOK9

承接区块链项目定制开发


qklbishe.com区块链毕设代做网专注|以太坊fabric-计算机|java|毕业设计|代做平台-javagopython毕设 » select和epoll的区别