摘要: 异步IO中也有高效低效之分,但主要还是要看具体的应用到底需要什么样机制。比如大家熟知的select就是个非常通用且跨平台的方法,由于select中需要把大量的时间花在维护IO句柄上,导致其效率大打折扣,一般来说,对于小并发的异步IO操作,比如普通的客户端或者是小并发量的服务器,它的效率可能也足够了。关于select的效率问题其实从各平台上对于FD_SETSIZE的定义就能看出一些来,在windows平台上,FD_SETSIZE是64,在Linux平台上是1024,也就是说,对于平台提供商来说也不指望他们提供的select能给你多大的并发吞吐能力。
阅读全文
摘要: 所谓的同步和异步,在这里指的是应用程序和内核之间的交互方式。如果应用程序不需要等待内核的回应,那么它就是异步的。如果应用程序提交完IO请求后,需要等待“回执”,那么它就是同步的。而阻塞和非阻塞,指的是应用程序是否等待IO操作的完成。如果应用程序必须等到IO操作实际完成以后再执行下面的操作,那么它是阻塞的。反之,如果不等待IO操作的完成就开始执行其它操作,那么它是非阻塞的。
阅读全文