免费注册 查看新帖 |

Chinaunix

  平台 论坛 博客 文库
12
最近访问板块 发新帖
楼主: 飞得更高333
打印 上一主题 下一主题

[C] 非阻塞I/O [复制链接]

论坛徽章:
0
11 [报告]
发表于 2011-08-21 15:29 |只看该作者
回复  飞得更高333


   阻塞模式   猜测: 把进程睡眠在等待IO中断信号...,  而select 可能是IO终端信 ...
0506010237 发表于 2011-08-21 14:13



    你应该去看一下实现,而不是在这里瞎猜。

论坛徽章:
0
12 [报告]
发表于 2011-08-22 17:54 |只看该作者
回复 9# inkcpp


    非常感谢{:3_193:}

论坛徽章:
0
13 [报告]
发表于 2011-08-23 12:22 |只看该作者
回复 1# 飞得更高333


    个人理解,select, poll, epoll这些叫做异步IO(asynchronous IO)。非阻塞IO(non-blocking IO)是只读写fd的时候及时响应,不需要系统的buffer进行阻塞控制。

    ps: select不是一定要和非要阻塞IO配合使用,与阻塞的IO模型使用也很正常

论坛徽章:
0
14 [报告]
发表于 2011-08-23 12:28 |只看该作者
select, pool, epoll叫IO信号.
aio才是异步IO.

1.  阻塞IO
  来来来, 给哥一段数据...
    少等...
   (12年后)
   给你啦

2.  非阻塞IO
  来来来, 给哥一段数据
   灭有

   来来来, 给哥一段数据
  灭有

  来来来, 给哥一段数据
  给你

3.  信号IO
   哎, 那个epool啊, 我跟那小子要一段数据, 他装备好告诉我一下, 我先睡觉了.
  (12年后)
  那小子准备好了...

  来来来, 把数据给哥.
  给...


4. 异步IO
   来来来, 给哥一段数据.
  哥, 你先忙, 等我给你弄好再通知你.
  (12年后)
  哥, 数据己经给你了, 请查收.

论坛徽章:
0
15 [报告]
发表于 2011-08-23 17:16 |只看该作者
是的, 搂主说的"这个非阻塞I/O就是把套接字设置成非阻塞的选项"是正解
您需要登录后才可以回帖 登录 | 注册

本版积分规则 发表回复

  

北京盛拓优讯信息技术有限公司. 版权所有 京ICP备16024965号-6 北京市公安局海淀分局网监中心备案编号:11010802020122 niuxiaotong@pcpop.com 17352615567
未成年举报专区
中国互联网协会会员  联系我们:huangweiwei@itpub.net
感谢所有关心和支持过ChinaUnix的朋友们 转载本站内容请注明原作者名及出处

清除 Cookies - ChinaUnix - Archiver - WAP - TOP