码迷,mamicode.com
首页 > 系统相关 > 详细

linux i/o multiplexing

时间:2017-05-18 21:34:51      阅读:212      评论:0      收藏:0      [点我收藏+]

标签:epoll_ctl   table   回调   text   比较   enter   style   from   sel   

socket也是io的一种,阻塞的socket操作包括:

  • 输入:recv(), recvfrom(),缓冲区为空时阻塞
  • 输出:send(), sendto(),缓冲区为空时阻塞
  • 接受:accept(),无连接时阻塞
  • 连接:connect(),无响应时阻塞,对TCP连接而言会阻塞一个服务器往返时间

解决方案比较:

  select poll epoll
操作方法 遍历 遍历 回调
底层实现 数组 链表 哈希表
效率 O(n) O(n) O(1)
最大连接数 1024(x86), 2048(x64) 无限制 无限制
fd拷贝 每次调用都需要将fd集合从用户态拷贝到内核态 每次调用都需要将fd集合从用户态拷贝到内核态 调用epoll_ctl时拷贝进内存,之后每次epoll_wait不再拷贝

 

 

 

    

linux i/o multiplexing

标签:epoll_ctl   table   回调   text   比较   enter   style   from   sel   

原文地址:http://www.cnblogs.com/autoria/p/6875583.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!