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

Java線程阻塞的方法區(qū)別詳解

 更新時間:2023年10月26日 09:37:07   作者:buzhbuzh  
這篇文章主要介紹了Java線程阻塞的方法區(qū)別詳解,線程阻塞是指當一個線程無法繼續(xù)執(zhí)行時,它會進入阻塞狀態(tài),直到某個條件滿足后才能繼續(xù)執(zhí)行,線程阻塞可以通過多種方式實現(xiàn),如等待鎖、等待IO操作、等待其他線程的完成等,需要的朋友可以參考下

Thread.sleep()和Object.wait()的區(qū)別

(1)Thread.sleep()不會釋放占有的鎖,Object.wait()會釋放占有的鎖;

(2)Thread.sleep()必須傳入時間,Object.wait()可傳可不傳,不傳表示一直阻塞下去;

(3)Thread.sleep()到時間了會自動喚醒,然后繼續(xù)執(zhí)行;

(4)Object.wait()不帶時間的,需要另一個線程使用Object.notify()喚醒;

(5)Object.wait()帶時間的,假如沒有被notify,到時間了會自動喚醒,這時又分好兩種情況,一是立即獲取到了鎖,線程自然會繼續(xù)執(zhí)行;二是沒有立即獲取鎖,線程進入同步隊列等待獲取鎖;

其實,他們倆最大的區(qū)別就是Thread.sleep()不會釋放鎖資源,Object.wait()會釋放鎖資源。

Thread.sleep()和Condition.await()的區(qū)別 這個題目的回答思路跟Object.wait()是基本一致的,不同的是Condition.await()底層是調(diào)用LockSupport.park()來實現(xiàn)阻塞當前線程的。

Thread.sleep()和LockSupport.park()的區(qū)別

(1)從功能上來說,Thread.sleep()和LockSupport.park()方法類似,都是阻塞當前線程的執(zhí)行,且都不會釋放當前線程占有的鎖資源;

(2)Thread.sleep()沒法從外部喚醒,只能自己醒過來;

(3)LockSupport.park()方法可以被另一個線程調(diào)用LockSupport.unpark()方法喚醒;

(4)Thread.sleep()方法聲明上拋出了InterruptedException中斷異常,所以調(diào)用者需要捕獲這個異?;蛘咴賿伋觯?/p>

(5)LockSupport.park()方法不需要捕獲中斷異常;

(6)Thread.sleep()本身就是一個native方法;

(7)LockSupport.park()底層是調(diào)用的Unsafe的native方法;

Object.wait()和LockSupport.park()的區(qū)別

(1)Object.wait()方法需要在synchronized塊中執(zhí)行;

(2)LockSupport.park()可以在任意地方執(zhí)行;

(3)Object.wait()方法聲明拋出了中斷異常,調(diào)用者需要捕獲或者再拋出;

(4)LockSupport.park()不需要捕獲中斷異常【本文由公從號“彤哥讀源碼”原創(chuàng)】;

(5)Object.wait()不帶超時的,需要另一個線程執(zhí)行notify()來喚醒,但不一定繼續(xù)執(zhí)行后續(xù)內(nèi)容;

(6)LockSupport.park()不帶超時的,需要另一個線程執(zhí)行unpark()來喚醒,一定會繼續(xù)執(zhí)行后續(xù)內(nèi)容;

(7)如果在wait()之前執(zhí)行了notify()會怎樣?拋出IllegalMonitorStateException異常;

(8)如果在park()之前執(zhí)行了unpark()會怎樣?線程不會被阻塞,直接跳過park(),繼續(xù)執(zhí)行后續(xù)內(nèi)容;

LockSupport.park()會釋放鎖資源嗎? 不會,它只負責(zé)阻塞當前線程,釋放鎖資源實際上是在Condition的await()方法中實現(xiàn)的。

在這里插入圖片描述

到此這篇關(guān)于Java線程阻塞的方法區(qū)別詳解的文章就介紹到這了,更多相關(guān)Java線程阻塞的方法內(nèi)容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!

相關(guān)文章

  • SpringBoot Security安裝配置及Thymeleaf整合

    SpringBoot Security安裝配置及Thymeleaf整合

    這篇文章主要介紹了SpringBoot Security安裝配置及Thymeleaf整合,文中通過示例代碼介紹的非常詳細,對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友可以參考下
    2020-12-12
  • java.lang.Long cannot be cast to java.lang.Integer數(shù)據(jù)類型轉(zhuǎn)換異常解決辦法

    java.lang.Long cannot be cast to ja

    本文主要介紹了java.lang.Long cannot be cast to java.lang.Integer數(shù)據(jù)類型轉(zhuǎn)換異常解決辦法,文中通過示例代碼介紹的非常詳細,對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧
    2023-07-07
  • Java實現(xiàn)將String轉(zhuǎn)化為Int

    Java實現(xiàn)將String轉(zhuǎn)化為Int

    這篇文章主要介紹了Java實現(xiàn)將String轉(zhuǎn)化為Int方式,具有很好的參考價值,希望對大家有所幫助,如有錯誤或未考慮完全的地方,望不吝賜教
    2024-05-05
  • Java基礎(chǔ)Map集合詳析

    Java基礎(chǔ)Map集合詳析

    這篇文章主要介紹了Java基礎(chǔ)Map集合詳析,主要通過介紹Map集合的常用方法、Map的獲取方法的一些相關(guān)資料展開內(nèi)容,需要的小伙伴可以參考一下
    2022-04-04
  • 一文帶你了解Spring的Bean初始化過程和生命周期

    一文帶你了解Spring的Bean初始化過程和生命周期

    Spring的核心功能有三點IOC、DI、AOP,IOC則是基礎(chǔ),也是Spring功能的最核心的點之一。今天一起來總結(jié)下Spring中Bean是怎么被創(chuàng)建出來的
    2023-03-03
  • Java多線程下解決資源競爭的7種方法詳解

    Java多線程下解決資源競爭的7種方法詳解

    這篇文章主要介紹了Java多線程下解決資源競爭的7種方法詳解,文中通過示例代碼介紹的非常詳細,對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友可以參考下
    2019-08-08
  • 詳解Mybatis中的CRUD

    詳解Mybatis中的CRUD

    這篇文章主要介紹了Mybatis中的CRUD的相關(guān)知識,本文給大家介紹的非常詳細,對大家的學(xué)習(xí)或工作具有一定的參考借鑒價值,需要的朋友可以參考下
    2021-03-03
  • springboot2.1.7去除json返回字段中為null的字段

    springboot2.1.7去除json返回字段中為null的字段

    這篇文章主要介紹了springboot2.1.7去除json返回字段中為null的字段,文中通過示例代碼介紹的非常詳細,對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧
    2020-12-12
  • 使用Spring自定義命名空間

    使用Spring自定義命名空間

    這篇文章主要介紹了使用Spring自定義命名空間方式,具有很好的參考價值,希望對大家有所幫助。如有錯誤或未考慮完全的地方,望不吝賜教
    2021-09-09
  • k8s中java如何設(shè)置jvm堆棧大小不超過request/limit

    k8s中java如何設(shè)置jvm堆棧大小不超過request/limit

    這篇文章主要介紹了k8s中java如何設(shè)置jvm堆棧大小不超過request/limit問題,具有很好的參考價值,希望對大家有所幫助,如有錯誤或未考慮完全的地方,望不吝賜教
    2025-07-07

最新評論

枝江市| 宁晋县| 新竹县| 全南县| 东明县| 安岳县| 临夏市| 汤原县| 南川市| 子洲县| 鄂伦春自治旗| 崇义县| 中江县| 鄄城县| 茶陵县| 大化| 子长县| 库车县| 凤山市| 玉林市| 建始县| 云阳县| 南江县| 牙克石市| 曲靖市| 长沙县| 印江| 凯里市| 化德县| 巩义市| 八宿县| 西乌| 辽阳市| 二连浩特市| 武威市| 琼中| 清流县| 高碑店市| 卫辉市| 成都市| 伽师县|