Select和epoll的区别
谈谈对I/O多路复用的理解,Select和Epoll的区别
首先I/O多路复用是用线程监听多个文件描述符,或连接事件,一旦发现一个或多个就绪的文件描述符便触发阻塞唤醒,让应用程序直接读写。
①Select基于轮询,遍历所有文件描述符,而epoll只遍历就绪的文件描述符,要比select快很多
②select监听集合受操作系统限制,而epoll不受限制
③在处理大量文件描述符时,随着文件描述符的增多,select性能逐渐下降,而epoll性能保持稳定
④在多线程场景下,select需将监听集合传递给每个线程,而epoll在一个线程中处理多个文件描述符,省下了线程切换和数据复制的开销。
总的来说epoll比select好,但在文件描述符较少和需要多平台支持的场景下用select更好。
首先I/O多路复用是用线程监听多个文件描述符,或连接事件,一旦发现一个或多个就绪的文件描述符便触发阻塞唤醒,让应用程序直接读写。
①Select基于轮询,遍历所有文件描述符,而epoll只遍历就绪的文件描述符,要比select快很多
②select监听集合受操作系统限制,而epoll不受限制
③在处理大量文件描述符时,随着文件描述符的增多,select性能逐渐下降,而epoll性能保持稳定
④在多线程场景下,select需将监听集合传递给每个线程,而epoll在一个线程中处理多个文件描述符,省下了线程切换和数据复制的开销。
总的来说epoll比select好,但在文件描述符较少和需要多平台支持的场景下用select更好。
全部评论
最后总结咋select更好了?
兄弟,试试光伏电池行业~
相关推荐
点赞 评论 收藏
分享