成人国产在线小视频_日韩寡妇人妻调教在线播放_色成人www永久在线观看_2018国产精品久久_亚洲欧美高清在线30p_亚洲少妇综合一区_黄色在线播放国产_亚洲另类技巧小说校园_国产主播xx日韩_a级毛片在线免费

資訊專欄INFORMATION COLUMN

同步、異步、阻塞與非阻塞

sPeng / 472人閱讀

摘要:轉(zhuǎn)載自在實(shí)際應(yīng)用中,只有三種調(diào)用方式同步阻塞同步非阻塞和異步。同步異步同步和異步關(guān)注的是消息通信機(jī)制。當(dāng)被調(diào)用者獲得結(jié)果,會(huì)使用其他方式來通知調(diào)用者,或者通過回調(diào)函數(shù)來處理這個(gè)調(diào)用。然后查好了,他會(huì)主動(dòng)打電話給你回調(diào)函數(shù)。

轉(zhuǎn)載自 https://www.zhihu.com/questio...

在實(shí)際應(yīng)用中,只有三種調(diào)用方式:同步-阻塞、同步-非阻塞和異步。

同步 (synchronous) vs. 異步 (asynchronous)

同步和異步關(guān)注的是消息通信機(jī)制。

同步:發(fā)出一個(gè)調(diào)用,在沒有得到結(jié)果之前,該調(diào)用不返回。一旦調(diào)用返回,就得到返回值了。

異步:發(fā)出一個(gè)調(diào)用,這個(gè)調(diào)用就直接返回了,所以沒有返回結(jié)果。當(dāng)被調(diào)用者獲得結(jié)果,會(huì)使用其他方式來通知調(diào)用者,或者通過回調(diào)函數(shù)來處理這個(gè)調(diào)用。

舉個(gè)通俗的例子:

你打電話問書店老板有沒有《分布式系統(tǒng)》這本書。如果是同步通信機(jī)制,書店老板會(huì)說,你稍等,”我查一下",然后開始查啊查,等查好了(可能是5秒,也可能是一天)告訴你結(jié)果(返回結(jié)果)。

而異步通信機(jī)制,書店老板直接告訴你我查一下啊,查好了打電話給你,然后直接掛電話了(不返回結(jié)果)。然后查好了,他會(huì)主動(dòng)打電話給你(回調(diào)函數(shù))。

阻塞 (blocking) vs. 非阻塞 (non-blocking)

阻塞和非阻塞關(guān)注的是程序在等待調(diào)用結(jié)果時(shí)的狀態(tài)。

阻塞調(diào)用:在調(diào)用結(jié)果返回之前,當(dāng)前線程會(huì)被掛起。調(diào)用線程只有在得到結(jié)果之后才會(huì)返回。

非阻塞調(diào)用:在不能立刻得到結(jié)果時(shí),該調(diào)用不會(huì)阻塞當(dāng)前線程。

還是上面的例子:

你打電話問書店老板有沒有《分布式系統(tǒng)》這本書。如果是阻塞式調(diào)用,你會(huì)一直等待,直到得到這本書有沒有的結(jié)果。

如果是非阻塞式調(diào)用,你不管老板有沒有告訴你,你自己先一邊去玩了。你可能要偶爾過幾分鐘詢問一下老板有沒有返回結(jié)果(異步-輪詢),或者讓老板主動(dòng)打電話來告訴你結(jié)果(異步-回調(diào))。

文章版權(quán)歸作者所有,未經(jīng)允許請(qǐng)勿轉(zhuǎn)載,若此文章存在違規(guī)行為,您可以聯(lián)系管理員刪除。

轉(zhuǎn)載請(qǐng)注明本文地址:http://systransis.cn/yun/94687.html

相關(guān)文章

  • Node.js 指南(阻塞與非阻塞概述)

    摘要:標(biāo)準(zhǔn)庫(kù)中的所有方法都提供非阻塞的異步版本,并接受回調(diào)函數(shù),某些方法還具有對(duì)應(yīng)的阻塞方法,其名稱以結(jié)尾。比較代碼阻塞方法同步執(zhí)行,非阻塞方法異步執(zhí)行。 阻塞與非阻塞概述 此概述介紹了Node.js中阻塞與非阻塞調(diào)用之間的區(qū)別,此概述將引用事件循環(huán)和libuv,但不需要事先了解這些主題,假設(shè)讀者對(duì)JavaScript語言和Node.js回調(diào)模式有基本的了解。 I/O主要指與libuv支持的...

    zebrayoung 評(píng)論0 收藏0
  • nginx、swoole高并發(fā)原理初探

    摘要:一閱前熱身為了更加形象的說明同步異步阻塞非阻塞,我們以小明去買奶茶為例。等奶茶做好了,店員喊一聲小明,奶茶好了,然后小明去取奶茶。將響應(yīng)結(jié)果發(fā)給相應(yīng)的連接請(qǐng)求處理完成因?yàn)榛冢悦總€(gè)可以處理無數(shù)個(gè)連接請(qǐng)求。如此,就輕松的處理了高并發(fā)。 一、閱前熱身 為了更加形象的說明同步異步、阻塞非阻塞,我們以小明去買奶茶為例。 1、同步與異步 ①同步與異步的理解 同步與異步的重點(diǎn)在消息通知的方式上...

    denson 評(píng)論0 收藏0
  • nginx、swoole高并發(fā)原理初探

    摘要:一閱前熱身為了更加形象的說明同步異步阻塞非阻塞,我們以小明去買奶茶為例。等奶茶做好了,店員喊一聲小明,奶茶好了,然后小明去取奶茶。將響應(yīng)結(jié)果發(fā)給相應(yīng)的連接請(qǐng)求處理完成因?yàn)榛?,所以每個(gè)可以處理無數(shù)個(gè)連接請(qǐng)求。如此,就輕松的處理了高并發(fā)。 一、閱前熱身 為了更加形象的說明同步異步、阻塞非阻塞,我們以小明去買奶茶為例。 1、同步與異步 ①同步與異步的理解 同步與異步的重點(diǎn)在消息通知的方式上...

    617035918 評(píng)論0 收藏0
  • JS—異步、回調(diào)、高階函數(shù)

    摘要:而是在調(diào)用發(fā)出后,被調(diào)用者通過狀態(tài)通知來通知調(diào)用者,或通過回調(diào)函數(shù)處理這個(gè)調(diào)用。請(qǐng)求程序發(fā)出請(qǐng)求,從服務(wù)器端獲取數(shù)據(jù),并設(shè)置了回調(diào)函數(shù)。然后,瀏覽器會(huì)設(shè)置偵聽來自網(wǎng)絡(luò)的響應(yīng),拿到數(shù)據(jù)后,將該回調(diào)函數(shù)插入到事件循環(huán)。 并發(fā)與并行 并發(fā)是指兩個(gè)或多個(gè)事件鏈隨時(shí)間發(fā)展交替執(zhí)行,以至于從更高的層次來看,就像是同時(shí)運(yùn)行(但在任意時(shí)刻只處理一個(gè)事件) 并發(fā)的關(guān)鍵是你有處理多個(gè)任務(wù)的能力,不一定同...

    Dean 評(píng)論0 收藏0
  • Java IO的一些思考

    摘要:最近面試問的比較多的問題就是這一塊了,有些也答出來了,有些答的不好,最近這段時(shí)間開始深入了解一些這方面的東西,也想總結(jié)一下。 最近面試問的比較多的問題就是IO這一塊了,有些也答出來了,有些答的不好,最近這段時(shí)間開始深入了解一些這方面的東西,也想總結(jié)一下。 前置點(diǎn) 1,用戶空間系統(tǒng)空間 Linux系統(tǒng)會(huì)把一個(gè)進(jìn)程分為兩個(gè)空間,用戶空間和系統(tǒng)空間,比如我們正常的編碼,操作的都是用戶空...

    468122151 評(píng)論0 收藏0

發(fā)表評(píng)論

0條評(píng)論

最新活動(dòng)
閱讀需要支付1元查看
<