摘要: 異步IO中也有高效低效之分,但主要還是要看具體的應用到底需要什么樣機制。比如大家熟知的select就是個非常通用且跨平臺的方法,由于select中需要把大量的時間花在維護IO句柄上,導致其效率大打折扣,一般來說,對于小并發的異步IO操作,比如普通的客戶端或者是小并發量的服務器,它的效率可能也足夠了。關于select的效率問題其實從各平臺上對于FD_SETSIZE的定義就能看出一些來,在windows平臺上,FD_SETSIZE是64,在Linux平臺上是1024,也就是說,對于平臺提供商來說也不指望他們提供的select能給你多大的并發吞吐能力。
閱讀全文
摘要: 所謂的同步和異步,在這里指的是應用程序和內核之間的交互方式。如果應用程序不需要等待內核的回應,那么它就是異步的。如果應用程序提交完IO請求后,需要等待“回執”,那么它就是同步的。而阻塞和非阻塞,指的是應用程序是否等待IO操作的完成。如果應用程序必須等到IO操作實際完成以后再執行下面的操作,那么它是阻塞的。反之,如果不等待IO操作的完成就開始執行其它操作,那么它是非阻塞的。
閱讀全文