
Unix/C
文章平均质量分 69
Song_Russell
这个作者很懒,什么都没留下…
展开
-
IO多路复用模型之Select
**IO多路复用模型之Select** 在Unix/C中,Socket相关的函数操作都是阻塞式的,在单线程下服务端只能处理一个客户端请求。采用多线程处理客户端请求,虽然能充分发挥多核CPU能力,但是在客户端连接过多,并发度维持相对较高水平时,多线程引起线程的上下文切换将导致系统效率低下。Select多路复用模型的核心思想,在单线程下处理多客户端连接,Unix/C提供了相应函数库,具体原创 2017-11-23 23:09:50 · 385 阅读 · 0 评论 -
多路复用模型之epoll
作为多路复用IO模型,epoll致力于解决select与poll设计缺陷以提升系统并发能力。 (1) 并发效率不随文句柄树上升而线性下降: epoll避免了select模型中对所有每次所有文件描述符句柄轮询。它的底层采用红黑树记录所有文件句柄,并将活跃的连接存放至链表中,在处理IO事件时,只需遍历该链表即可。 (2) mmap加速内核与用户态拷贝: 无论select,poll还是epoll原创 2017-11-24 23:07:30 · 247 阅读 · 0 评论