最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

簡述JAVA同步、異步、阻塞和非阻塞之間的區(qū)別

 更新時間:2020年08月01日 11:41:26   作者:PinXiong  
這篇文章主要介紹了JAVA同步、異步、阻塞和非阻塞之間的區(qū)別,文中講解非常細(xì)致,幫助大家更好的理解和學(xué)習(xí),感興趣的朋友可以了解下

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

1. 同步和異步

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

同步

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

異步

當(dāng)一個request發(fā)送出去以后,沒有得到想要的response,而是通過后面的callback、狀態(tài)或者通知的方式獲得結(jié)果??梢赃@么理解,對于異步請求分兩步:

1)調(diào)用方發(fā)送request沒有返回對應(yīng)的response(可能是一個空的response);

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

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

2. 阻塞和非阻塞

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

阻塞

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

非阻塞

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

阻塞和非阻塞最大的區(qū)別就是看調(diào)用方線程是否會被掛起。

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

同步阻塞IO

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

異步阻塞IO

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

同步非阻塞IO

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

異步非阻塞IO

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

總結(jié)

  • 同步和異步就看調(diào)用方是否需要通過callback、通知或者狀態(tài)來獲取結(jié)果
  • 阻塞和非阻塞就看調(diào)用方在發(fā)送請求后是否block住了

以上就是簡述JAVA同步、異步、阻塞和非阻塞之間的區(qū)別的詳細(xì)內(nèi)容,更多關(guān)于JAVA同步、異步、阻塞和非阻塞的區(qū)別的資料請關(guān)注腳本之家其它相關(guān)文章!

相關(guān)文章

  • SWT JFace 小制作 文本閱讀器

    SWT JFace 小制作 文本閱讀器

    SWT JFace 小制作 文本閱讀器
    2009-06-06
  • javax.net.ssl.SSLException: java.lang.RuntimeException: Could not generate DH keypair 解決方法總結(jié)

    javax.net.ssl.SSLException: java.lang.RuntimeException: Coul

    這篇文章主要介紹了javax.net.ssl.SSLException: java.lang.RuntimeException: Could not generate DH keypair 解決方法,有需要的朋友們可以學(xué)習(xí)下。
    2019-08-08
  • Spring中Eureka的服務(wù)下線詳解

    Spring中Eureka的服務(wù)下線詳解

    這篇文章主要介紹了Spring中Eureka的服務(wù)下線詳解,根據(jù)默認(rèn)的策略,如果在一定的時間內(nèi),客戶端沒有向注冊中心發(fā)送續(xù)約請求,那么注冊中心就會將該實例從注冊中心移除,需要的朋友可以參考下
    2023-11-11
  • Java項目防止SQL注入的幾種方法總結(jié)

    Java項目防止SQL注入的幾種方法總結(jié)

    SQL注入是比較常見的網(wǎng)絡(luò)攻擊方式之一,在客戶端在向服務(wù)器發(fā)送請求的時候,sql命令通過表單提交或者url字符串拼接傳遞到后臺持久層,最終達(dá)到欺騙服務(wù)器執(zhí)行惡意的SQL命令,下面這篇文章主要給大家總結(jié)介紹了關(guān)于Java項目防止SQL注入的幾種方法,需要的朋友可以參考下
    2023-04-04
  • Spring事務(wù)中的事務(wù)傳播行為使用方式詳解

    Spring事務(wù)中的事務(wù)傳播行為使用方式詳解

    Spring框架作為一個輕量級的開源框架,在企業(yè)應(yīng)用開發(fā)中被廣泛使用,在Spring事務(wù)管理中,事務(wù)傳播行為是非常重要的一部分,它定義了方法如何參與到已經(jīng)存在的事務(wù)中或者如何開啟新的事務(wù),本文將詳細(xì)介紹Spring事務(wù)中的幾種事務(wù)傳播行為,詳細(xì)講解具體使用方法
    2023-06-06
  • 解決java Graphics drawImage 無法顯示圖片的問題

    解決java Graphics drawImage 無法顯示圖片的問題

    這篇文章主要介紹了解決java Graphics drawImage 無法顯示圖片的問題,具有很好的參考價值,希望對大家有所幫助。如有錯誤或未考慮完全的地方,望不吝賜教
    2021-11-11
  • Java,JSP,Servlet獲取當(dāng)前工程路徑(絕對路徑)問題解析

    Java,JSP,Servlet獲取當(dāng)前工程路徑(絕對路徑)問題解析

    這篇文章主要介紹了Java,JSP,Servlet獲取當(dāng)前工程路徑(絕對路徑)問題解析,需要的朋友可以參考下。
    2017-09-09
  • MyBatis使用<foreach>標(biāo)簽報錯問題及解決

    MyBatis使用<foreach>標(biāo)簽報錯問題及解決

    這篇文章主要介紹了MyBatis使用<foreach>標(biāo)簽報錯問題及解決,具有很好的參考價值,希望對大家有所幫助,如有錯誤或未考慮完全的地方,望不吝賜教
    2024-03-03
  • 詳解如何在Elasticsearch中搜索空值

    詳解如何在Elasticsearch中搜索空值

    這篇文章主要為大家介紹了如何在Elasticsearch中搜索空值的方法示例詳解,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進(jìn)步,早日升職加薪
    2023-01-01
  • java中線程池的關(guān)閉問題

    java中線程池的關(guān)閉問題

    這篇文章主要介紹了java中線程池的關(guān)閉問題,具有很好的參考價值,希望對大家有所幫助,如有錯誤或未考慮完全的地方,望不吝賜教
    2023-08-08

最新評論

南岸区| 闽清县| 双辽市| 天等县| 宜川县| 武定县| 清徐县| 榆中县| 新巴尔虎左旗| 姜堰市| 句容市| 斗六市| 冷水江市| 襄樊市| 盐源县| 海淀区| 阆中市| 秦皇岛市| 合江县| 九龙城区| 天气| 盐源县| 富锦市| 佛山市| 工布江达县| 河池市| 马山县| 驻马店市| 宣汉县| 肃宁县| 西城区| 建水县| 达日县| 库尔勒市| 津南区| 青龙| 白水县| 古浪县| 兴仁县| 马鞍山市| 南开区|