摘要:總結同步服務依賴任務的執行結果異步服務不依賴任務的執行結果阻塞服務執行時線程會出現等待狀態非阻塞不服務執行時線程不會出現等待狀態
同步、異步、堵塞、非堵塞對于程序員來說都不會陌生,無論是看相關書籍,還是面試,都會涉及到這四個詞,下面給出我的理解,如有不對請多指教。
同步與異步服務(Service)被分割成多個任務(Task),服務的執行結果是否要求任務最終按順序執行。服務的結果依賴所有任務的執行稱為同步服務;服務的結果不依賴所有的任務稱為異步服務。下面舉例說明:
同步
服務(Service)開始被分割為TaskA,TaskB,TaskC三個任務,TaskB的執行依賴于TaskA的執行,服務最后結果依賴于TaskB、TaskC,所有任務對業務來說都是同步操作。(這里也可以把TaskA、TaskB理解成一個任務,當然啦可以把TaskA、TaskB、TaskC理解成一個任務。我們平時寫的比較多的就是同步代碼)
異步
服務(Service)開始被分割為TaskA,TaskB,TaskC三個任務,TaskB的執行依賴于TaskA的執行,業務最后結果依賴于TaskB,TaskC的執行結果或者說TaskC中涉及到的數據對服務來說不重要甚至是不需要,所以TaskC任務對于業務來說是一個異步操作,也可以說是一個異步服務。
阻塞和非阻塞如果說線程是程序工作的基本單位、服務是要處理的內容,那么阻塞是指工作線程需要等待服務的響應結果才會處理下一個服務,否則工作線程會一直處于等待狀態。非阻塞是指工作線程不需等待結果直接處理下一個服務。
阻塞
服務的執行在Handler結果返回之前,工作線程會一直等待。
非阻塞
服務的執行不依賴Handler返回結果,工作線程直接處理下一個服務。
總結同步:服務依賴任務的執行結果
異步:服務不依賴任務的執行結果
阻塞:服務執行時線程會出現等待狀態
非阻塞:不服務執行時線程不會出現等待狀態
文章版權歸作者所有,未經允許請勿轉載,若此文章存在違規行為,您可以聯系管理員刪除。
轉載請注明本文地址:http://specialneedsforspecialkids.com/yun/68118.html
摘要:回調大多出現在請求,用于處理收到的請求結果?;卣{函數和異步一開始我被回調和異步有點搞暈了。異步編程的實現就我目前知道兩種回調函數和事件監聽,其實看了阮神的異步編程的文章和下面的評論之后得出的理解。為了不影響的執行,我們可以把寫成的回調函數。 前言 一個剛入前端的小菜,雖然以前看到過關于回調的文章,但是呢,理解起來有點費勁啊。當時的腦海里就一個概念。 回調:大多出現在Ajax請求,用于處...
摘要:的單線程,與它的用途有關。特點的顯著特點異步機制事件驅動。隊列的讀取輪詢線程,事件的消費者,的主角。它將不同的任務分配給不同的線程,形成一個事件循環,以異步的方式將任務的執行結果返回給引擎。 這兩天跟同事同事討論遇到的一個問題,js中的event loop,引出了chrome與node中運行具有setTimeout和Promise的程序時候執行結果不一樣的問題,從而引出了Nodejs的...
摘要:總而言之,只有先構建了對應的你才能用腳本去操作它所以這就是如果在中寫內聯不加經常報錯的原因,通常因為找不到對應的這也是我們為什么通常把外鏈放在底部進行加載確保了和加載完畢主要內容已經呈現給用戶確保了和加載完畢所有處于可操作狀態 前言 我就想隨便找個地方放東西不行嗎? 看別人寫的代碼,中寫原生js無一例外加了window.onload, jquery示例中無一例外的加了 $(funct...
閱讀 566·2021-11-18 10:02
閱讀 1048·2021-11-02 14:41
閱讀 674·2021-09-03 10:29
閱讀 1893·2021-08-23 09:42
閱讀 2728·2021-08-12 13:31
閱讀 1199·2019-08-30 15:54
閱讀 1952·2019-08-30 13:09
閱讀 1427·2019-08-30 10:55