怎樣理解同步異步和阻塞非阻塞

今天跟公司同事討論了下同步異步,阻塞非阻塞宵喂,在這里做下總結(jié),同時(shí)也發(fā)現(xiàn)很多同學(xué)(包括之前我)對同步異步碎罚,阻塞非阻塞的概念理解不太清晰磅废。

之前看過一個(gè)很形象的例子來說明同步異步阻塞非阻塞。
場景: 小明使用 chrome 下載一個(gè)軟件荆烈。

1. 同步阻塞

小明使用 沒有提醒功能的chrome 下載一個(gè)軟件拯勉。小明 一直坐在電腦面前什么事也不做, 等待軟件下載完成憔购。
阻塞:小明(調(diào)用者) 等待電腦下載完成宫峦,什么事也不做(當(dāng)前進(jìn)程掛起) 。
同步: 沒有提醒功能的 chrome(被調(diào)用者)
總結(jié): 調(diào)用結(jié)果返回前玫鸟,進(jìn)程掛起导绷,等待調(diào)用結(jié)果返回。效率低

2.異步阻塞

小明使用 有提醒功能的chrome(下載完成會 '叮'一聲提醒用戶) 下載軟件屎飘。小明一直坐在電腦前什么事也不做妥曲,等待軟件下載完成贾费。
阻塞:小明(調(diào)用者) 等待電腦下載完成,什么事也不做(當(dāng)前進(jìn)程掛起)檐盟。
異步:有提醒功能的 chrome褂萧,下載完成的時(shí)候會提醒小明。(調(diào)用結(jié)果返回時(shí)會通知進(jìn)程)
總結(jié):雖然調(diào)用結(jié)果返回會通知進(jìn)程葵萎,但是調(diào)用結(jié)果返回前导犹,當(dāng)前進(jìn)程掛起。所以同樣效率低

這里我們可以看出羡忘,同步和異步是一種 消息通知機(jī)制谎痢, 是相對于被調(diào)用者而言的。

同步:

A調(diào)用B壳坪,B處理直到獲得結(jié)果舶得,才返回給A。
需要調(diào)用者一直等待和確認(rèn)調(diào)用結(jié)果是否返回爽蝴, 然后繼續(xù)往下執(zhí)行沐批。

異步:

A調(diào)用B,B直接返回蝎亚。無需等待結(jié)果九孩,B通過狀態(tài),通知等來通知A或回調(diào)函數(shù)來處理发框。
調(diào)用結(jié)果返回時(shí)躺彬, 會以消息或回調(diào)的方式通知調(diào)用者。

3.同步非阻塞

小明使用 沒有提醒功能的chrome 下載軟件梅惯,然后去做其他事情宪拥,時(shí)不時(shí)的過來確認(rèn)下軟件是否下載完成(輪詢?)铣减。小明做其他事情的效率不高她君。
非阻塞: 小明 (調(diào)用者) 執(zhí)行需要等待的任務(wù)后,去做其他事情葫哗。
同步:沒有提醒功能的 chrome(被調(diào)用者)需要 小明(調(diào)用者) 確認(rèn)是否完成任務(wù)缔刹。
總結(jié):調(diào)用結(jié)果返回前不會阻塞當(dāng)前進(jìn)程,當(dāng)前進(jìn)程可以去做其他事情劣针,但是需要通過輪詢來確認(rèn)調(diào)用結(jié)果是否返回校镐,耗cpu性能,效率會比 1捺典,2 高點(diǎn)鸟廓。但是還不夠高

4.異步非阻塞

小明使用 有提醒功能的chrome 下載軟件, 然后去做其他事,當(dāng)軟件下載完成的時(shí)候會通知小明肝箱。
非阻塞: 小明 (調(diào)用者) 執(zhí)行需要等待的任務(wù)后哄褒,去做其他事情。
異步: 有通知功能的 chrome (被調(diào)用者) 下載完成后會通知 小明(調(diào)用者)煌张。
總結(jié):調(diào)用結(jié)果返回前當(dāng)前進(jìn)程可以繼續(xù)做其他事情呐赡,函數(shù)調(diào)用完成后會以回調(diào)或者消息的方式通知進(jìn)程。效率最高骏融。

這里我們可以看出 阻塞非阻塞 描述的是進(jìn)程等待調(diào)用結(jié)果返回前的狀態(tài)链嘀, 是相對于調(diào)用者而言的。

阻塞:

A調(diào)用B档玻,A被掛起直到B返回結(jié)果給A怀泊,A繼續(xù)執(zhí)行。
調(diào)用結(jié)果返回前误趴,當(dāng)前進(jìn)程掛起不能夠處理其他任務(wù)霹琼,一直等待調(diào)用結(jié)果返回。

非阻塞:

A調(diào)用B凉当,A不會被掛起枣申,A可以執(zhí)行其他操作。
調(diào)用結(jié)果返回前看杭,當(dāng)前進(jìn)程不掛起忠藤, 可以去處理其他任務(wù)。

所以我們要區(qū)分開同步異步阻塞非阻塞楼雹,同步異步說的是被調(diào)用者結(jié)果返回時(shí)通知進(jìn)程的一種通知機(jī)制模孩,阻塞非阻塞說的是調(diào)用結(jié)果返回前進(jìn)程的狀態(tài),是掛起還是繼續(xù)處理其他任務(wù)贮缅。

python 的 tornado 框架就是一種異步非阻塞框架榨咐。

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
  • 序言:七十年代末,一起剝皮案震驚了整個(gè)濱河市谴供,隨后出現(xiàn)的幾起案子祭芦,更是在濱河造成了極大的恐慌,老刑警劉巖憔鬼,帶你破解...
    沈念sama閱讀 218,386評論 6 506
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件,死亡現(xiàn)場離奇詭異胃夏,居然都是意外死亡轴或,警方通過查閱死者的電腦和手機(jī),發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 93,142評論 3 394
  • 文/潘曉璐 我一進(jìn)店門仰禀,熙熙樓的掌柜王于貴愁眉苦臉地迎上來照雁,“玉大人,你說我怎么就攤上這事〗任茫” “怎么了萍诱?”我有些...
    開封第一講書人閱讀 164,704評論 0 353
  • 文/不壞的土叔 我叫張陵,是天一觀的道長污呼。 經(jīng)常有香客問我裕坊,道長,這世上最難降的妖魔是什么燕酷? 我笑而不...
    開封第一講書人閱讀 58,702評論 1 294
  • 正文 為了忘掉前任籍凝,我火速辦了婚禮,結(jié)果婚禮上苗缩,老公的妹妹穿的比我還像新娘饵蒂。我一直安慰自己,他們只是感情好酱讶,可當(dāng)我...
    茶點(diǎn)故事閱讀 67,716評論 6 392
  • 文/花漫 我一把揭開白布退盯。 她就那樣靜靜地躺著,像睡著了一般泻肯。 火紅的嫁衣襯著肌膚如雪渊迁。 梳的紋絲不亂的頭發(fā)上,一...
    開封第一講書人閱讀 51,573評論 1 305
  • 那天软免,我揣著相機(jī)與錄音宫纬,去河邊找鬼。 笑死膏萧,一個(gè)胖子當(dāng)著我的面吹牛漓骚,可吹牛的內(nèi)容都是我干的。 我是一名探鬼主播榛泛,決...
    沈念sama閱讀 40,314評論 3 418
  • 文/蒼蘭香墨 我猛地睜開眼蝌蹂,長吁一口氣:“原來是場噩夢啊……” “哼!你這毒婦竟也來了曹锨?” 一聲冷哼從身側(cè)響起孤个,我...
    開封第一講書人閱讀 39,230評論 0 276
  • 序言:老撾萬榮一對情侶失蹤,失蹤者是張志新(化名)和其女友劉穎沛简,沒想到半個(gè)月后齐鲤,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體,經(jīng)...
    沈念sama閱讀 45,680評論 1 314
  • 正文 獨(dú)居荒郊野嶺守林人離奇死亡椒楣,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點(diǎn)故事閱讀 37,873評論 3 336
  • 正文 我和宋清朗相戀三年给郊,在試婚紗的時(shí)候發(fā)現(xiàn)自己被綠了。 大學(xué)時(shí)的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片捧灰。...
    茶點(diǎn)故事閱讀 39,991評論 1 348
  • 序言:一個(gè)原本活蹦亂跳的男人離奇死亡淆九,死狀恐怖,靈堂內(nèi)的尸體忽然破棺而出,到底是詐尸還是另有隱情炭庙,我是刑警寧澤饲窿,帶...
    沈念sama閱讀 35,706評論 5 346
  • 正文 年R本政府宣布,位于F島的核電站焕蹄,受9級特大地震影響逾雄,放射性物質(zhì)發(fā)生泄漏。R本人自食惡果不足惜擦盾,卻給世界環(huán)境...
    茶點(diǎn)故事閱讀 41,329評論 3 330
  • 文/蒙蒙 一嘲驾、第九天 我趴在偏房一處隱蔽的房頂上張望。 院中可真熱鬧迹卢,春花似錦辽故、人聲如沸。這莊子的主人今日做“春日...
    開封第一講書人閱讀 31,910評論 0 22
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽。三九已至症见,卻和暖如春喂走,著一層夾襖步出監(jiān)牢的瞬間,已是汗流浹背谋作。 一陣腳步聲響...
    開封第一講書人閱讀 33,038評論 1 270
  • 我被黑心中介騙來泰國打工芋肠, 沒想到剛下飛機(jī)就差點(diǎn)兒被人妖公主榨干…… 1. 我叫王不留,地道東北人遵蚜。 一個(gè)月前我還...
    沈念sama閱讀 48,158評論 3 370
  • 正文 我出身青樓帖池,卻偏偏與公主長得像,于是被迫代替她去往敵國和親吭净。 傳聞我的和親對象是個(gè)殘疾皇子睡汹,可洞房花燭夜當(dāng)晚...
    茶點(diǎn)故事閱讀 44,941評論 2 355

推薦閱讀更多精彩內(nèi)容