当前位置: 技术问答>linux和unix
请教:用select进行多I/O操作的时候,这些I/O是否阻塞,是不是已经意义不大了?
来源: 互联网 发布时间:2015-10-02
本文导语: 小弟很少用到非阻塞i/o,请教一个很粗浅的问题。 假如现在要对几个非阻塞i/o写,写函数在i/o没有准备好的情况下是立即返回的。那么,必须要么不停的写并通过返回值来确定是否写成功,要么调用select或者poll等待...
小弟很少用到非阻塞i/o,请教一个很粗浅的问题。
假如现在要对几个非阻塞i/o写,写函数在i/o没有准备好的情况下是立即返回的。那么,必须要么不停的写并通过返回值来确定是否写成功,要么调用select或者poll等待准备好的i/o,再进行写操作。
显然前一种方法是很笨的。但用后一种方法,我有个疑问:用select对多i/o进行读写的时候,因为select返回时必然i/o已经准备好了,这时对i/o的操作总能成功的。那么是不是在这种情况下,i/o是否是阻塞型的已经没有太大区别了呢?如果是这个意思,那非阻塞i/o一般用在什么情况呢?
谢谢~
假如现在要对几个非阻塞i/o写,写函数在i/o没有准备好的情况下是立即返回的。那么,必须要么不停的写并通过返回值来确定是否写成功,要么调用select或者poll等待准备好的i/o,再进行写操作。
显然前一种方法是很笨的。但用后一种方法,我有个疑问:用select对多i/o进行读写的时候,因为select返回时必然i/o已经准备好了,这时对i/o的操作总能成功的。那么是不是在这种情况下,i/o是否是阻塞型的已经没有太大区别了呢?如果是这个意思,那非阻塞i/o一般用在什么情况呢?
谢谢~
|
是这样的!非阻塞是用到异步的时候