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

Java多線程死鎖示例

 更新時間:2018年08月30日 14:42:31   作者:u013063153  
這篇文章主要介紹了Java多線程死鎖,結(jié)合實例形式分析了Java多線程出現(xiàn)死鎖的相關(guān)原因與操作注意事項,需要的朋友可以參考下

本文實例演示了Java多線程死鎖。分享給大家供大家參考,具體如下:

package com.damlab.fz;
public class DeadLock {
  public static void main(String[] args) {
    Resource r1 = new Resource();
    Resource r2 = new Resource();
    // 每個線程都擁有r1,r2兩個對象
    Thread myTh1 = new MyThread1(r1, r2);
    Thread myTh2 = new MyThread2(r1, r2);
    myTh1.start();
    myTh2.start();
  }
}
class Resource {
  private int i;
}
class MyThread1 extends Thread {
  private Resource r1, r2;
  public MyThread1(Resource r1, Resource r2) {
    this.r1 = r1;
    this.r2 = r2;
  }
  @Override
  public void run() {
    while (true) {
      // 先獲得r1的鎖,再獲得r2的鎖
      synchronized (r1) {
        System.out.println("1號線程獲取了r1的鎖");
        synchronized (r2) {
          System.out.println("1號線程獲取了r2的鎖");
        }
      }
    }
  }
}
class MyThread2 extends Thread {
  private Resource r1, r2;
  public MyThread2(Resource r1, Resource r2) {
    this.r1 = r1;
    this.r2 = r2;
  }
  @Override
  public void run() {
    while (true) {
      // 先獲得r2的鎖,再獲得r1的鎖
      synchronized (r2) {
        System.out.println("2號線程獲取了r2的鎖");
        synchronized (r1) {
          System.out.println("2號線程獲取了r1的鎖");
        }
      }
    }
  }
}

運行結(jié)果:

更多java相關(guān)內(nèi)容感興趣的讀者可查看本站專題:《Java進程與線程操作技巧總結(jié)》、《Java數(shù)據(jù)結(jié)構(gòu)與算法教程》、《Java操作DOM節(jié)點技巧總結(jié)》、《Java文件與目錄操作技巧匯總》和《Java緩存操作技巧匯總

希望本文所述對大家java程序設(shè)計有所幫助。

相關(guān)文章

  • java中駝峰與下劃線的寫法互轉(zhuǎn)

    java中駝峰與下劃線的寫法互轉(zhuǎn)

    這篇文章主要介紹了java中駝峰與下橫線的寫法互轉(zhuǎn)方法,文中先是進行了簡單的介紹,之后跟大家分享了一個自己編寫的工具類的示例代碼,有需要的朋友可以參考借鑒,下面來一起學(xué)習(xí)學(xué)習(xí)吧。
    2017-01-01
  • SpringBoot中加載與Bean處理的細節(jié)剖析教程

    SpringBoot中加載與Bean處理的細節(jié)剖析教程

    這篇文章主要為大家詳細介紹了SpringBoot中加載與Bean處理的細節(jié)剖析,文中的示例代碼講解詳細,感興趣的小伙伴可以跟隨小編一起學(xué)習(xí)一下
    2025-08-08
  • Java中常見延時隊列的實現(xiàn)方案小結(jié)(建議收藏)

    Java中常見延時隊列的實現(xiàn)方案小結(jié)(建議收藏)

    延時隊列它要具有隊列的特性,再給它附加一個延遲消費隊列消息的功能,也就是說可以指定隊列中的消息在哪個時間點被消費,這篇文章主要介紹了Java中常見延時隊列的實現(xiàn)方案總結(jié),需要的朋友可以參考下
    2024-04-04
  • Java?嵌入數(shù)據(jù)引擎從?SQLite?到?SPL詳解

    Java?嵌入數(shù)據(jù)引擎從?SQLite?到?SPL詳解

    這篇文章主要介紹了Java?嵌入數(shù)據(jù)引擎:從?SQLite?到?SPL,SQLite架構(gòu)簡單,其核心雖然是C語言開發(fā)的,但封裝得比較好,對外呈現(xiàn)為一個小巧的Jar包,能方便地集成在Java應(yīng)用中,本文給大家介紹的非常詳細,需要的朋友參考下
    2022-07-07
  • Filter在springboot中的使用方法詳解

    Filter在springboot中的使用方法詳解

    這篇文章主要介紹了Filter在springboot中的使用方法詳解,filter(過濾器)作用于在intreceptor(攔截器)之前,不像intreceptor一樣依賴于springmvc框架,只需要依賴于serverlet,需要的朋友可以參考下
    2023-08-08
  • 攜程Apollo(阿波羅)安裝部署以及java整合實現(xiàn)

    攜程Apollo(阿波羅)安裝部署以及java整合實現(xiàn)

    這篇文章主要介紹了攜程Apollo(阿波羅)安裝部署以及java整合實現(xiàn),文中通過示例代碼介紹的非常詳細,對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧
    2019-08-08
  • Java實現(xiàn)自動化合并與拆分PowerPoint表格單元格

    Java實現(xiàn)自動化合并與拆分PowerPoint表格單元格

    通過 Spire.Presentation for Java,我們可以利用代碼精準(zhǔn)地控制表格的每一個角落,本文將詳細介紹如何在 Java 后端實現(xiàn) PPT 表格的合并與拆分操作,需要的可以了解下
    2026-02-02
  • Java中的AQS框架原理詳解

    Java中的AQS框架原理詳解

    這篇文章主要介紹了Java中的AQS框架原理詳解,AQS核心思想是,如果被請求的共享資源(state)空閑,則將當(dāng)前請求資源的線程設(shè)置為有效的工作線程,并且將共享資源設(shè)置為鎖定狀態(tài),需要的朋友可以參考下
    2023-12-12
  • 使用Jenkins配置Git+Maven的自動化構(gòu)建的方法

    使用Jenkins配置Git+Maven的自動化構(gòu)建的方法

    這篇文章主要介紹了使用Jenkins配置Git+Maven的自動化構(gòu)建的方法,文中通過示例代碼介紹的非常詳細,對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧
    2019-01-01
  • java8 LocalDate LocalDateTime等時間類用法實例分析

    java8 LocalDate LocalDateTime等時間類用法實例分析

    這篇文章主要介紹了java8 LocalDate LocalDateTime等時間類用法,結(jié)合具體實例形式分析了LocalDate、LocalTime、LocalDateTime等日期時間相關(guān)類的功能與具體使用技巧,需要的朋友可以參考下
    2017-04-04

最新評論

凯里市| 酉阳| 礼泉县| 封丘县| 西平县| 白玉县| 德令哈市| 马龙县| 卓资县| 潮州市| 凤庆县| 安达市| 喀喇沁旗| 万安县| 峨眉山市| 简阳市| 崇州市| 托克逊县| 莫力| 灌阳县| 哈密市| 古田县| 庆城县| 宁明县| 沙河市| 建瓯市| 邓州市| 都江堰市| 博乐市| 贵州省| 杭州市| 敖汉旗| 揭东县| 鄂伦春自治旗| 德江县| 贺州市| 长白| 海口市| 突泉县| 南郑县| 金沙县|