91超碰碰碰碰久久久久久综合_超碰av人澡人澡人澡人澡人掠_国产黄大片在线观看画质优化_txt小说免费全本

溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務條款》

JAVA同步、異步、阻塞和非阻塞有什么區別

發布時間:2020-08-01 14:13:17 來源:億速云 閱讀:331 作者:小豬 欄目:開發技術

這篇文章主要為大家展示了JAVA同步、異步、阻塞和非阻塞有什么區別,內容簡而易懂,希望大家可以學習一下,學習完之后肯定會有收獲的,下面讓小編帶大家一起來看看吧。

同步和異步,阻塞和非阻塞是大家經常會聽到的概念,但是它們是從不同維度來描述一件事情,常常很容易混為一談。

1. 同步和異步

同步和異步描述的是消息通信的機制。

同步

當一個request發送出去以后,會得到一個response,這整個過程就是一個同步調用的過程。哪怕response為空,或者response的返回特別快,但是針對這一次請求而言就是一個同步的調用。

異步

當一個request發送出去以后,沒有得到想要的response,而是通過后面的callback、狀態或者通知的方式獲得結果。可以這么理解,對于異步請求分兩步:

1)調用方發送request沒有返回對應的response(可能是一個空的response);

2)服務提供方將response處理完成以后通過callback的方式通知調用方。

對于1)而言是同步操作(調用方請求服務方),對于2)而言也是同步操作(服務方回掉調用方)。從請求的目的(調用方發送一個request,希望獲得對應的response)來看,這兩個步驟拆分開來沒有任何意義,需要結合起來看,而這整個過程就是一次異步請求。異步請求有一個最典型的特點:需要callback、狀態或者通知的方式來告知調用方結果。

2. 阻塞和非阻塞

阻塞和非阻塞描述的是程序在等待調用結果(消息,返回值)時的狀態。

阻塞

阻塞調用是指調用方發出request的線程因為某種原因(如:等待系統資源)被服務方掛起,當服務方得到response后就喚醒掛起線程,并將response返回給調用方。

非阻塞

非阻塞調用是指調用方發出request的線程在沒有等到結果時不會被掛起,直到得到response后才返回。

阻塞和非阻塞最大的區別就是看調用方線程是否會被掛起。

3. 同步、異步、阻塞和非阻塞IO

同步阻塞IO

JAVA同步、異步、阻塞和非阻塞有什么區別

針對Sender而言,請求發送出去以后,一直等到Receiver有結果了才返回,這是同步。在Sender獲取結果的期間一直被block住了,也就是在此期間Sender不能處理其它事情,這是阻塞。

異步阻塞IO

JAVA同步、異步、阻塞和非阻塞有什么區別

針對Sender而言,請求發送出去以后,立刻返回,然后再等待Receiver的callback,最后再次請求獲取response,這整個過程是異步。在Sender等待Receiver的callback期間一直被block住了,也就是在此期間Sender不能處理其它事情,這是阻塞。

同步非阻塞IO

JAVA同步、異步、阻塞和非阻塞有什么區別

針對Sender而言,請求發送出去以后,立刻返回,然后再不停的發送請求,直到Receiver處理好結果后,最后一次發請求給Receiver才獲得response。Sender一直在主動輪詢,每一個請求都是同步的,整個過程也是同步的。在Sender等待Receiver的response期間一直是可以處理其它事情的(比如:可以發送請求詢問結果),這是非阻塞。

異步非阻塞IO

JAVA同步、異步、阻塞和非阻塞有什么區別

針對Sender而言,請求發送出去以后,立刻返回,然后再等待Receiver的callback,最后再次請求獲取response,這整個過程是異步。在Sender等待Receiver的callback期間一直是可以處理其它事情的,這是非阻塞。

總結

  • 同步和異步就看調用方是否需要通過callback、通知或者狀態來獲取結果
  • 阻塞和非阻塞就看調用方在發送請求后是否block住了

以上就是關于JAVA同步、異步、阻塞和非阻塞有什么區別的內容,如果你們有學習到知識或者技能,可以把它分享出去讓更多的人看到。

向AI問一下細節

免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。

AI

遵化市| 稷山县| 洛阳市| 从化市| 汉源县| 莱芜市| 阳泉市| 西畴县| 苏州市| 道孚县| 木里| 搜索| 海城市| 张家港市| 晴隆县| 克什克腾旗| 开封市| 嘉善县| 建德市| 房产| 富平县| 江孜县| 西峡县| 邵阳县| 平和县| 五寨县| 金川县| 高密市| 涟源市| 斗六市| 秭归县| 正宁县| 遂昌县| 合江县| 木兰县| 泾川县| 绩溪县| 怀化市| 琼结县| 长阳| 津南区|