欧美bbbwbbbw肥妇,免费乱码人妻系列日韩,一级黄片

淺談Java中Lock和Synchronized的區(qū)別

 更新時(shí)間:2022年04月28日 16:37:35   作者:請(qǐng)叫我黃同學(xué)  
這篇文章主要介紹了Java中Lock和Synchronized的區(qū)別,Lock和Synchronized都是java中去用來(lái)解決線程安全問(wèn)題的一個(gè)工具,但是具體有什么區(qū)別呢?下面我們一起進(jìn)入文章了解具體詳細(xì)內(nèi)容吧,需要的朋友可以參考一下

1. 從功能角度來(lái)看

LockSynchronized都是java中去用來(lái)解決線程安全問(wèn)題的一個(gè)工具

2. 從特性來(lái)看

Synchronized是java中的同步關(guān)鍵字,Lock是J.U.C包中提供的接口,而這個(gè)接口有很多的實(shí)現(xiàn)類(lèi),包括ReentrantLock這樣重入鎖的實(shí)現(xiàn),Synchronized可以通過(guò)兩種方式去控制鎖的力度

 一種把synchronized關(guān)鍵字修飾在方法層面,另一種是修飾在代碼塊上,可以通過(guò)synchronized加鎖對(duì)象的生命周期,來(lái)控制鎖的作用范圍,鎖對(duì)象是靜態(tài)對(duì)象或者是類(lèi)對(duì)象,那么這個(gè)鎖就是屬于全局鎖,如果鎖對(duì)象是普通實(shí)例對(duì)象,那么這個(gè)鎖的范圍取決于這個(gè)實(shí)例的生命周期,Lock中鎖的粒度是通過(guò)它里面提供的lock()方法和unlock()方法來(lái)決定的

 如上圖:在lock()方法和unlock()方法之間的代碼,是能夠保證線程安全的,而鎖的作用域 取決于Lock實(shí)例的生命周期。Lock比Synchronized的靈活性更高,Lock可以自主的去決定什么時(shí)候加鎖,什么時(shí)候釋放鎖,只需要調(diào)用lock()unlock這兩個(gè)方法就可以了,Lock還提供了非阻塞的競(jìng)爭(zhēng)鎖的方法,叫tryLock(),這個(gè)方法可以通過(guò)返回true/false來(lái)告訴當(dāng)前線程是否已經(jīng)有其他線程正在使用鎖,而Synchronized由于是關(guān)鍵字,所以它無(wú)法去實(shí)現(xiàn)非阻塞競(jìng)爭(zhēng)鎖的方法,Synchroized鎖的釋放是被動(dòng)的,當(dāng)Synchronized同步代碼塊,執(zhí)行結(jié)束以后,或者代碼出現(xiàn)異常的時(shí)候才會(huì)被釋放,Lock提供了公平鎖和非公平鎖的機(jī)制,公平鎖是指線程競(jìng)爭(zhēng)鎖資源的時(shí)候,已經(jīng)有其它線程正在排隊(duì),或者等待鎖釋放,那么當(dāng)前競(jìng)爭(zhēng)鎖的線程,是無(wú)法去插隊(duì)的,非公平鎖就是不管是否有線程在排隊(duì)等待鎖,它都會(huì)去嘗試去競(jìng)爭(zhēng)一次鎖,Synchronized只提供方了一種非公平鎖的實(shí)現(xiàn)。

3. 從性能方面來(lái)看

Synchronized和lock在性能方面相差不大,在實(shí)現(xiàn)上會(huì)有一定的區(qū)別,Synchronized引入了偏向鎖,輕量級(jí)鎖,重量級(jí)鎖以及鎖升級(jí)的機(jī)制來(lái)實(shí)現(xiàn)鎖的優(yōu)化,而Lock中則用到了自旋鎖的方式去實(shí)現(xiàn)性能優(yōu)化

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

相關(guān)文章

  • Java靜態(tài)和非靜態(tài)成員變量初始化過(guò)程解析

    Java靜態(tài)和非靜態(tài)成員變量初始化過(guò)程解析

    這篇文章主要介紹了Java靜態(tài)和非靜態(tài)成員變量初始化過(guò)程解析,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友可以參考下
    2020-01-01
  • SpringBoot+Vue靜態(tài)資源刷新后無(wú)法訪問(wèn)的問(wèn)題解決方案

    SpringBoot+Vue靜態(tài)資源刷新后無(wú)法訪問(wèn)的問(wèn)題解決方案

    這篇文章主要介紹了SpringBoot+Vue靜態(tài)資源刷新后無(wú)法訪問(wèn)的問(wèn)題解決方案,文中通過(guò)代碼示例和圖文講解的非常詳細(xì),對(duì)大家解決問(wèn)題有一定的幫助,需要的朋友可以參考下
    2024-05-05
  • Java源碼解析之詳解ImmutableMap

    Java源碼解析之詳解ImmutableMap

    今天給大家?guī)?lái)的是關(guān)于Java源碼的相關(guān)知識(shí),文章圍繞著Java ImmutableMap展開(kāi),文中有非常詳細(xì)的介紹及代碼示例,需要的朋友可以參考下
    2021-06-06
  • Java獲取Class對(duì)象的幾種方式小結(jié)

    Java獲取Class對(duì)象的幾種方式小結(jié)

    本文給大家分享了Java獲取Class對(duì)象的幾種方式,使用類(lèi)名.class 語(yǔ)法,使用對(duì)象的 getClass()方法,使用 Class.forName()方法等多種方法,不同的方式適用于不同的場(chǎng)景,需要的朋友可以參考下
    2023-10-10
  • mybatis-plus使用問(wèn)題小結(jié)

    mybatis-plus使用問(wèn)題小結(jié)

    這篇文章主要介紹了mybatis-plus使用問(wèn)題匯總,本文通過(guò)實(shí)例代碼給大家介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或工作具有一定的參考借鑒價(jià)值,需要的朋友可以參考下
    2022-03-03
  • 淺談JAVA設(shè)計(jì)模式之享元模式

    淺談JAVA設(shè)計(jì)模式之享元模式

    這篇文章主要介紹了JAVA設(shè)計(jì)模式之享元模式的的相關(guān)資料,文中詳細(xì)的介紹了享元模式的概念以及使用方法,感興趣的朋友可以了解下
    2020-06-06
  • Java實(shí)現(xiàn)洗牌發(fā)牌的方法

    Java實(shí)現(xiàn)洗牌發(fā)牌的方法

    這篇文章主要介紹了Java實(shí)現(xiàn)洗牌發(fā)牌的方法,涉及java針對(duì)數(shù)組的遍歷與排序操作相關(guān)技巧,具有一定參考借鑒價(jià)值,需要的朋友可以參考下
    2015-07-07
  • 淺談java.util.concurrent包中的線程池和消息隊(duì)列

    淺談java.util.concurrent包中的線程池和消息隊(duì)列

    這篇文章主要介紹了淺談java.util.concurrent包中的線程池和消息隊(duì)列,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧
    2019-08-08
  • SpringBoot開(kāi)發(fā)技巧啟動(dòng)時(shí)配置校驗(yàn)實(shí)現(xiàn)示例

    SpringBoot開(kāi)發(fā)技巧啟動(dòng)時(shí)配置校驗(yàn)實(shí)現(xiàn)示例

    這篇文章主要為大家介紹了SpringBoot開(kāi)發(fā)在啟動(dòng)時(shí)自動(dòng)配置校驗(yàn)的實(shí)現(xiàn)示例及原理解析,有需要的朋友可以借鑒參考下希望能夠有所幫助
    2021-10-10
  • Spring?Boot集成Milvus快速入門(mén)demo示例詳解

    Spring?Boot集成Milvus快速入門(mén)demo示例詳解

    Milvus是一種高性能向量數(shù)據(jù)庫(kù),支持從筆記本到大型分布式系統(tǒng)的多環(huán)境運(yùn)行,它以開(kāi)源和云服務(wù)形式提供,是LFAI & Data Foundation的項(xiàng)目,采用Apache 2.0許可,Milvus特別支持高并行化和解耦的系統(tǒng)架構(gòu),使其能夠隨數(shù)據(jù)增長(zhǎng)而擴(kuò)展,支持各種復(fù)雜搜索功能,滿(mǎn)足企業(yè)級(jí)AI應(yīng)用需求
    2024-09-09

最新評(píng)論