同步阻塞勾徽,同步非阻塞贺拣,異步阻塞,異步非阻塞...
暈捂蕴!
頭譬涡!
轉(zhuǎn)!
向啥辨!
對(duì)于小白來(lái)說(shuō)涡匀,理解這些概念太難了。搜索這些概念溉知,得到的卻是更多的概念陨瘩,什么并發(fā),并行级乍,銀行家算法舌劳,操作系統(tǒng)調(diào)度等等...
難道就沒(méi)有說(shuō)人話(huà)的解釋嗎?用更復(fù)雜地概念去解釋不懂的概念玫荣,只會(huì)帶來(lái)更大的認(rèn)知困惑甚淡。
好在,網(wǎng)上有一個(gè)關(guān)于這些概念的比喻捅厂,簡(jiǎn)潔生動(dòng)贯卦,一目了然资柔。
老張愛(ài)喝茶,晚飯后必不可少要喝上一泡茶撵割。
泡茶的第一步是要先煮開(kāi)水贿堰,他用的是老式水壺,水開(kāi)了啡彬,不會(huì)響羹与,也不會(huì)自動(dòng)關(guān)閉。為了防止水開(kāi)了溢出庶灿,甚至是燒干鍋纵搁,他就坐在一旁等著。(同步阻塞跳仿,老張只能等到水開(kāi)诡渴,在此期間不能去做其他事)
后來(lái)捐晶,由于新劇上播菲语,老張媳婦在追劇,要老張陪著一起看惑灵,寵妻狂魔(怕老婆)的老張不得不從山上,但心里一直惦記著開(kāi)水,于是時(shí)不時(shí)回去廚房看水是否開(kāi)了英支。(同步非阻塞佩憾,在燒水期間,可以做其他事干花,但水燒開(kāi)了不會(huì)發(fā)出通知妄帘,因此需要輪詢(xún)確認(rèn)水的狀態(tài))
由于不能專(zhuān)心陪媳婦看電視,媳婦有了意見(jiàn)池凄,老張換了一個(gè)新的水壺抡驼,水燒開(kāi)后會(huì)發(fā)起響聲并自動(dòng)斷開(kāi)
由于是新買(mǎi)的水壺,對(duì)于其功能還不放心肿仑,第一次使用致盟,老張為了安全起見(jiàn),坐著一旁等著尤慰。(異步阻塞馏锡,在此期間,老張不能去做其他事伟端,但水燒開(kāi)后會(huì)主動(dòng)發(fā)出通知)
試驗(yàn)成功杯道!
接下來(lái)老張?jiān)僖膊挥貌榭此欠駸_(kāi)了,直接陪老婆看電視责蝠,直到聽(tīng)到水燒開(kāi)的響聲再去倒水蕉饼。(異步非阻塞虐杯,燒水期間,老張可以去做其他事昧港,水燒開(kāi)了會(huì)發(fā)出通知)
總結(jié):
- 同步:事情完成后不能發(fā)出通知擎椰,只能由調(diào)用者輪詢(xún)查看
- 異步:事情完成后,主動(dòng)向調(diào)用者發(fā)出通知
- 阻塞:在等待一件事完成期間创肥,不能去做其他事
- 非阻塞:在等待一件事完成期間达舒,可以去做其他事
此比喻來(lái)源網(wǎng)絡(luò),原作者不明叹侄,我在其基礎(chǔ)上進(jìn)行了修改