天天看點

了解5種網絡IO模型

我覺得要了解5種網絡模型,第一看懂Stevens的那張圖

了解5種網絡IO模型

第二用身邊的一件例子來了解它

然後對于Stevens的圖我就不過多解釋了,下面我介紹下我怎麼用生活中的例子來了解他的,故事的起因源自一次酒店洗衣服

然後我把洗衣服的過程叫做資料準備,然後衣服洗好了拿到房間叫做輔助資料到使用者空間

阻塞式IO就是洗衣服的時候一直在洗衣機旁邊等着(好像有啥見不得人的東西),在衣服洗好之前你不能走,隻能站在那裡,然後衣服洗好之後把衣服拿到房間

非阻塞式IO就是洗衣服的時候不用在旁等着,但是你不知道衣服什麼時間可以洗好,然後就需要不斷的過來檢查,直到衣服洗好之後把衣服拿到房間

IO複用就是你要洗的衣服太多了,一台洗衣機裝不下或者你想把衣服分開洗,你就要用多台洗衣機一起洗,同樣洗的時候還是阻塞式IO了

信号驅動IO就是酒店的洗衣機比較牛逼,衣服洗完了會通知你(具體怎麼通知就不追究了),然後你就不用在洗衣服的時候傻傻等在那邊了,等洗衣機跟你發資訊之後過來去衣服就好了

異步IO最牛逼的了,上面幾個兄弟都是窮屌,因為有錢,洗衣服直接叫鐘點工,讓鐘點工洗完了,把衣服拿過來,然後通知你

最後關于同步IO與異步IO,一種簡單的了解方式就是異步IO無需等待,而同步IO通常要等待資料等。。。若了解有誤,網大神指教,是以前四種IO方式都是同步IO