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

資訊專欄INFORMATION COLUMN

同步、異步、堵塞、非堵塞概念總結(jié)

caikeal / 3469人閱讀

摘要:總結(jié)同步服務(wù)依賴任務(wù)的執(zhí)行結(jié)果異步服務(wù)不依賴任務(wù)的執(zhí)行結(jié)果阻塞服務(wù)執(zhí)行時線程會出現(xiàn)等待狀態(tài)非阻塞不服務(wù)執(zhí)行時線程不會出現(xiàn)等待狀態(tài)

同步、異步、堵塞、非堵塞對于程序員來說都不會陌生,無論是看相關(guān)書籍,還是面試,都會涉及到這四個詞,下面給出我的理解,如有不對請多指教。

同步與異步

服務(wù)(Service)被分割成多個任務(wù)(Task),服務(wù)的執(zhí)行結(jié)果是否要求任務(wù)最終按順序執(zhí)行。服務(wù)的結(jié)果依賴所有任務(wù)的執(zhí)行稱為同步服務(wù);服務(wù)的結(jié)果不依賴所有的任務(wù)稱為異步服務(wù)。下面舉例說明:

同步

服務(wù)(Service)開始被分割為TaskA,TaskB,TaskC三個任務(wù),TaskB的執(zhí)行依賴于TaskA的執(zhí)行,服務(wù)最后結(jié)果依賴于TaskB、TaskC,所有任務(wù)對業(yè)務(wù)來說都是同步操作。(這里也可以把TaskA、TaskB理解成一個任務(wù),當(dāng)然啦可以把TaskA、TaskB、TaskC理解成一個任務(wù)。我們平時寫的比較多的就是同步代碼)

異步

服務(wù)(Service)開始被分割為TaskA,TaskB,TaskC三個任務(wù),TaskB的執(zhí)行依賴于TaskA的執(zhí)行,業(yè)務(wù)最后結(jié)果依賴于TaskB,TaskC的執(zhí)行結(jié)果或者說TaskC中涉及到的數(shù)據(jù)對服務(wù)來說不重要甚至是不需要,所以TaskC任務(wù)對于業(yè)務(wù)來說是一個異步操作,也可以說是一個異步服務(wù)。

阻塞和非阻塞

如果說線程是程序工作的基本單位、服務(wù)是要處理的內(nèi)容,那么阻塞是指工作線程需要等待服務(wù)的響應(yīng)結(jié)果才會處理下一個服務(wù),否則工作線程會一直處于等待狀態(tài)。非阻塞是指工作線程不需等待結(jié)果直接處理下一個服務(wù)。

阻塞

服務(wù)的執(zhí)行在Handler結(jié)果返回之前,工作線程會一直等待。

非阻塞

服務(wù)的執(zhí)行不依賴Handler返回結(jié)果,工作線程直接處理下一個服務(wù)。

總結(jié)

同步:服務(wù)依賴任務(wù)的執(zhí)行結(jié)果

異步:服務(wù)不依賴任務(wù)的執(zhí)行結(jié)果

阻塞:服務(wù)執(zhí)行時線程會出現(xiàn)等待狀態(tài)

非阻塞:不服務(wù)執(zhí)行時線程不會出現(xiàn)等待狀態(tài)

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

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

相關(guān)文章

  • JS基礎(chǔ)——異步回調(diào)

    摘要:回調(diào)大多出現(xiàn)在請求,用于處理收到的請求結(jié)果?;卣{(diào)函數(shù)和異步一開始我被回調(diào)和異步有點搞暈了。異步編程的實現(xiàn)就我目前知道兩種回調(diào)函數(shù)和事件監(jiān)聽,其實看了阮神的異步編程的文章和下面的評論之后得出的理解。為了不影響的執(zhí)行,我們可以把寫成的回調(diào)函數(shù)。 前言 一個剛?cè)肭岸说男〔?,雖然以前看到過關(guān)于回調(diào)的文章,但是呢,理解起來有點費勁啊。當(dāng)時的腦海里就一個概念。 回調(diào):大多出現(xiàn)在Ajax請求,用于處...

    tianhang 評論0 收藏0
  • JS與Node.js中的事件循環(huán)

    摘要:的單線程,與它的用途有關(guān)。特點的顯著特點異步機制事件驅(qū)動。隊列的讀取輪詢線程,事件的消費者,的主角。它將不同的任務(wù)分配給不同的線程,形成一個事件循環(huán),以異步的方式將任務(wù)的執(zhí)行結(jié)果返回給引擎。 這兩天跟同事同事討論遇到的一個問題,js中的event loop,引出了chrome與node中運行具有setTimeout和Promise的程序時候執(zhí)行結(jié)果不一樣的問題,從而引出了Nodejs的...

    abson 評論0 收藏0
  • JS專題之事件循環(huán)

    摘要:宏任務(wù)需要多次事件循環(huán)才能執(zhí)行完。總結(jié)事件循環(huán)是和事件調(diào)用機制的核心,保證了頁面可以有序無阻塞的進(jìn)行。事件循環(huán)的主要邏輯是先執(zhí)行調(diào)用棧,直到清空調(diào)用棧只剩下全局上下文。微任務(wù)執(zhí)行后完,進(jìn)行頁面渲染和垃圾回收后進(jìn)行下一輪事件循環(huán)。 準(zhǔn)備知識 1. 進(jìn)程(process) 進(jìn)程是系統(tǒng)資源分配一個獨立單位,一個程序至少有一個進(jìn)程。比方說:一個工廠代表一個 CPU, 一個車間就是一個進(jìn)程,任一...

    mengera88 評論0 收藏0
  • Java并發(fā)

    摘要:對象改變條件對象當(dāng)前線程要等待線程終止之后才能從返回。如果線程在上的操作中被中斷,通道會被關(guān)閉,線程的中斷狀態(tài)會被設(shè)置,并得到一個。清除線程的中斷狀態(tài)。非公平性鎖雖然可能造成饑餓,但極少的線程切換,保證其更大的吞吐量。 聲明:Java并發(fā)的內(nèi)容是自己閱讀《Java并發(fā)編程實戰(zhàn)》和《Java并發(fā)編程的藝術(shù)》整理來的。 showImg(https://segmentfault.com/im...

    SKYZACK 評論0 收藏0
  • 切圖崽的自我修養(yǎng)-加載JS的常見方式

    摘要:總而言之,只有先構(gòu)建了對應(yīng)的你才能用腳本去操作它所以這就是如果在中寫內(nèi)聯(lián)不加經(jīng)常報錯的原因,通常因為找不到對應(yīng)的這也是我們?yōu)槭裁赐ǔ0淹怄湻旁诘撞窟M(jìn)行加載確保了和加載完畢主要內(nèi)容已經(jīng)呈現(xiàn)給用戶確保了和加載完畢所有處于可操作狀態(tài) 前言 我就想隨便找個地方放東西不行嗎? 看別人寫的代碼,中寫原生js無一例外加了window.onload, jquery示例中無一例外的加了 $(funct...

    王軍 評論0 收藏0

發(fā)表評論

0條評論

最新活動
閱讀需要支付1元查看
<