2014年10月23日
摘要: 上文描述了最简易的非阻塞IO,采用的是轮询的方式,这节我们使用IO复用模型。 阻塞IO 过去我们使用IO复用与阻塞IO结合的时候,IO复用模型起到的作用是并发监听多个fd。 以简单的回射服务器为例,我们只监听了某fd是否可读,一旦fd有数据,我们立刻read,然后将其write给对方。 在阻塞IO里面,我们总是认为fd是可写的。因为即使底层的IO缓冲区已满,稍微等待片刻即可。这... 阅读全文
posted @ 2014-10-23 17:05 inevermore 阅读(1651) 评论(0) 推荐(0) 编辑
摘要: 非阻塞IO是相对于传统的阻塞IO而言的。 我们首先需要搞清楚,什么是阻塞IO。APUE指出,系统调用分为两类,低速系统调用和其他,其中低速系统调用是可能会使进程永远阻塞的一类系统调用。但是与磁盘IO有关的系统调用是个例外。 我们以read和write为例,read函数读取stdin,如果是阻塞IO,那么: 如果我们不输入数据,那么read函数会一直阻塞,一直到我们输入数据为止。 如... 阅读全文
posted @ 2014-10-23 11:27 inevermore 阅读(2454) 评论(0) 推荐(1) 编辑