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