IO組件
IO組件
相關文章 : 0篇
瀏覽 : 次
以往常規(guī)的代碼都是單線程同步的代碼,指令的執(zhí)行順序和書寫時一致,當遇到IO(文件操作或是網(wǎng)絡操作),通常都會阻塞線程,那么OS會讓其他線程獲得CPU資源,這使得你的程序停滯了,當有其他請求進來時得不到處理,自然系統(tǒng)性能也就降低了。傳統(tǒng)的方法是用多個線程處理多個請求,就像運行php的apache服務器一樣,然而線程是昂貴的,自然也不是較好的選擇。 IO 操作是基于OS,windows系統(tǒng)提供倆類IO,一種是同步IO(如上面描述的一樣),一種是異步IO(其他OS也提供這樣的操作,但并不是所有的OS都支持的很好)。異步IO與同步IO的區(qū)別在于誰去真正執(zhí)行IO操作。在同步IO中是由用戶進程執(zhí)行IO;在異步IO中,則有OS分派另外的內(nèi)核線程來執(zhí)行,待數(shù)據(jù)準備好之后再將數(shù)據(jù)交由用戶進程處理,在內(nèi)核線程執(zhí)行IO的時候,用戶進程可以處理其他事情,并未被阻塞,這是異步IO高效的原因。
推薦產(chǎn)品
列表欄目