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

JDK8 new ReentrantLock((true)加鎖流程

 更新時間:2023年07月06日 10:35:35   作者:子瞻  
這篇文章主要介紹了java面試中常遇到的問題JDK8 new ReentrantLock((true)加鎖流程示例解析,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進(jìn)步,早日升職加薪

new ReentrantLock(true)加鎖流程

protected final boolean tryAcquire(int acquires) {
    //獲取當(dāng)前線程
    final Thread current = Thread.currentThread();
    //獲取state值
    int c = getState();
    //還沒有線程占用
    if (c == 0) {
        //!(頭節(jié)點和尾節(jié)點不是一個節(jié)點 && (頭節(jié)點的next -> NULL 或者 頭節(jié)點.next節(jié)點 不是 當(dāng)前線程 ))
        //也就是說,頭尾是一個節(jié)點 或者 頭節(jié)點.next節(jié)點的線程是當(dāng)前線程
        if (!hasQueuedPredecessors() &&
            //cas 0 -> 1
            compareAndSetState(0, acquires)) {
            /設(shè)置獨占線程
            setExclusiveOwnerThread(current);
            return true;
        }
    }
    //當(dāng)前線程等于獨占線程
    else if (current == getExclusiveOwnerThread()) {
        //state值+1
        int nextc = c + acquires;
        if (nextc < 0)
            throw new Error("Maximum lock count exceeded");
        //重新賦值 state 值
        setState(nextc);
        return true;
    }
    //否則返回false
    return false;
}

如果獲得鎖失敗,和JDK8 new ReentrantLock()加鎖流程中流程一樣!

以上就是JDK8 new ReentrantLock((true)加鎖流程的詳細(xì)內(nèi)容,更多關(guān)于JDK8 new ReentrantLock的資料請關(guān)注腳本之家其它相關(guān)文章!

相關(guān)文章

  • 關(guān)于Springboot2.x集成lettuce連接redis集群報超時異常Command timed out after 6 second(s)

    關(guān)于Springboot2.x集成lettuce連接redis集群報超時異常Command timed out afte

    這篇文章主要介紹了Springboot2.x集成lettuce連接redis集群報超時異常Command timed out after 6 second(s),本文通過實例代碼給大家介紹的非常詳細(xì),需要的朋友可以參考下
    2021-03-03
  • java設(shè)計模式--建造者模式詳解

    java設(shè)計模式--建造者模式詳解

    這篇文章主要介紹了Java設(shè)計模式之建造者模式,結(jié)合具體實例形式分析了建造者模式的概念、原理、實現(xiàn)方法與相關(guān)使用注意事項,需要的朋友可以參考下
    2021-07-07
  • MyBatis-Plus 樂觀鎖的具體實現(xiàn)

    MyBatis-Plus 樂觀鎖的具體實現(xiàn)

    MyBatis-Plus 的樂觀鎖通過簡單的配置和注解,可以輕松實現(xiàn)高并發(fā)場景下的數(shù)據(jù)并發(fā)控制,具有一定的參考價值,感興趣的可以了解一下
    2024-09-09
  • Java實現(xiàn)簡單的銀行管理系統(tǒng)的示例代碼

    Java實現(xiàn)簡單的銀行管理系統(tǒng)的示例代碼

    這篇文章主要介紹了如何利用Java實現(xiàn)簡單的銀行管理系統(tǒng),可以實現(xiàn)存款,取款,查詢等功能,文中的示例代碼講解詳細(xì),感興趣的可以了解一下
    2022-09-09
  • Java8中Stream的詳細(xì)使用方法大全

    Java8中Stream的詳細(xì)使用方法大全

    Java8的另一大亮點Stream,它與java.io包里的InputStream和OutputStream是完全不同的概念,下面這篇文章主要給大家介紹了關(guān)于Java8中Stream詳細(xì)使用方法的相關(guān)資料,需要的朋友可以參考下
    2022-06-06
  • 如何區(qū)分JAVA中的equals與==

    如何區(qū)分JAVA中的equals與==

    這篇文章主要介紹了如何區(qū)分JAVA中的equals與==,文章簡單易懂,實例代碼幫助大家更好的參考學(xué)習(xí),感興趣的朋友可以了解下
    2020-06-06
  • Java?Stream流使用最多的方式示例詳解

    Java?Stream流使用最多的方式示例詳解

    在 Java 編程中,Stream 流提供了一種高效、便捷的方式來處理集合數(shù)據(jù),本文將詳細(xì)介紹 Java 中 Stream 流的用法,包括基礎(chǔ)用法、中級用法、高級用法以及一些特殊方法的使用,感興趣的朋友一起看看吧
    2024-12-12
  • 解決IDEA提示:MVC DispatcherServlet servlet context in module ssm. File is included in 4 contexts.問題

    解決IDEA提示:MVC DispatcherServlet servlet contex

    在SSM整合配置Spring時出現(xiàn)錯誤,需刪除多余配置文件并重新導(dǎo)入,若屬性解析失敗,清除緩存重啟IDEA,個人經(jīng)驗,供參考
    2025-08-08
  • Java實現(xiàn)石頭剪刀布小游戲

    Java實現(xiàn)石頭剪刀布小游戲

    這篇文章主要為大家詳細(xì)介紹了Java實現(xiàn)石頭剪刀布小游戲,文中示例代碼介紹的非常詳細(xì),具有一定的參考價值,感興趣的小伙伴們可以參考一下
    2021-01-01
  • MyBatis Generator介紹及使用方法

    MyBatis Generator介紹及使用方法

    MyBatis Generator 是一款針對 MyBatis 或 iBATIS 設(shè)計的代碼生成器,由 MyBatis 官方提供,這篇文章主要介紹了MyBatis Generator介紹及使用方法,需要的朋友可以參考下
    2023-06-06

最新評論

梓潼县| 邛崃市| 乌海市| 玛曲县| 长丰县| 怀柔区| 博白县| 江门市| 湄潭县| 鲁甸县| 龙川县| 平凉市| 绍兴市| 德江县| 陈巴尔虎旗| 贵溪市| 昌宁县| 巴林左旗| 镇巴县| 达拉特旗| 承德市| 临安市| 镇原县| 青川县| 景德镇市| 鱼台县| 红原县| 益阳市| 凯里市| 桓台县| 玛纳斯县| 黑龙江省| 乳源| 彭州市| 永嘉县| 崇信县| 万州区| 泌阳县| 柯坪县| 沙坪坝区| 法库县|