当前位置: 技术问答>linux和unix
什么是非阻塞I/O?
来源: 互联网 发布时间:2016-01-17
本文导语: 如题。。 | 非阻塞模式是指 那些socket函数都是直接返回的..不会等到有信息了才返回.. 比如发送 ,接受,管理连接的 send recv 函数等等.... 阻塞模式难实现很多东西...灵活性很差.....
如题。。
|
非阻塞模式是指 那些socket函数都是直接返回的..不会等到有信息了才返回..
比如发送 ,接受,管理连接的 send recv 函数等等....
阻塞模式难实现很多东西...灵活性很差..... 就相当于程序运行到那里就卡住了.. 连想关它都做不到....当然关他可以,使用线程, 但就是一堆线程太多了.耗资源..
比如发送 ,接受,管理连接的 send recv 函数等等....
阻塞模式难实现很多东西...灵活性很差..... 就相当于程序运行到那里就卡住了.. 连想关它都做不到....当然关他可以,使用线程, 但就是一堆线程太多了.耗资源..
|
总的来说,I/O处理的模型有5种:
阻塞I/O模型:在这种模型下,如果所调用的I/O函数没有完成相关的功能就会使进程挂起,直到相关数据到才会出错返回.比如常见的管道设备,终端设备和网络设备进行读写十经常 出现这种情况.
非阻塞模型:是当请求的I/O操作不能完成时,则不让进程睡眠,而且返回一个错误.并且表示该I/O如果操作继续执行就会阻塞.
参考资料:华清远见
阻塞I/O模型:在这种模型下,如果所调用的I/O函数没有完成相关的功能就会使进程挂起,直到相关数据到才会出错返回.比如常见的管道设备,终端设备和网络设备进行读写十经常 出现这种情况.
非阻塞模型:是当请求的I/O操作不能完成时,则不让进程睡眠,而且返回一个错误.并且表示该I/O如果操作继续执行就会阻塞.
参考资料:华清远见