色综合图-色综合图片-色综合图片二区150p-色综合图区-玖玖国产精品视频-玖玖香蕉视频

您的位置:首頁技術(shù)文章
文章詳情頁

java - 為什么第一個線程已經(jīng)釋放了鎖,第二個線程卻不行?

瀏覽:102日期:2024-02-11 18:16:07

問題描述

public class ReentrantLockDemo { private Lock lock = new ReentrantLock(); public void doSomeThing() {System.out.println(Thread.currentThread().getName()+'是否獲得了鎖:'+lock.tryLock());lock.lock();try { System.out.println(Thread.currentThread().getName()); Thread.sleep(3000);} catch (Exception e) {} finally { System.out.println(Thread.currentThread().getName()+'釋放了鎖'); lock.unlock();} } static class MyRunable implements Runnable {private ReentrantLockDemo demo;public MyRunable(ReentrantLockDemo demo) { this.demo = demo;}@Overridepublic void run() { demo.doSomeThing();} } public static void main(String[] args) throws InterruptedException { ReentrantLockDemo demo = new ReentrantLockDemo();new Thread(new MyRunable(demo)).start();Thread.sleep(1000);new Thread(new MyRunable(demo)).start(); }}

輸出:Thread-0是否獲得了鎖:trueThread-0Thread-1是否獲得了鎖:falseThread-0釋放了鎖

然后就卡在這里了。沒有任何結(jié)果??赡苁前l(fā)生了死鎖。

如果我去掉這句話,一切就是正常的:System.out.println(Thread.currentThread().getName()+'是否獲得了鎖:'+lock.tryLock());

請問這是為什么?

問題解答

回答1:

你用的是可重入鎖,在Thread0在調(diào)用tryLock的時候,如果當前鎖可獲得,會立刻獲取鎖,后面你又調(diào)用了一次lock,由于Thread0已經(jīng)獲取了鎖,所以可重入鎖的state等于2,所以 Thread0 釋放鎖的時候要unlock兩次鎖才被真正的釋放掉。

標簽: java
主站蜘蛛池模板: 亚洲视频 在线观看 | 国产美女主播一级成人毛片 | 欧美精品在线视频观看 | 欧美一级毛片免费播放aa | tom影院亚洲国产 | 国产精品秦先生手机在线 | 久久综合日韩亚洲精品色 | 久久视频这里只有精品 | 亚洲成a人在线观看 | 99视频在线免费 | avtt亚洲一区中文字幕 | 成人合成mv福利视频网站 | 岬奈一区二区中文字幕 | 欧美成人三级伦在线观看 | 国产成人盗拍精品免费视频 | 日韩欧一级毛片在线播无遮挡 | 美女互操 | 亚洲一区二区三区高清 | 亚洲综合色吧 | 日韩精品免费一区二区三区 | 毛片免费观看久久欧美 | 在线视频日本 | 精品国产三级a在线观看 | 欧美一级毛片片免费孕妇 | 免费一级毛片无毒不卡 | 久久久久久久久久综合情日本 | 国产日产久久高清欧美一区 | 99av视频| 日韩视频观看 | 一品道一本香蕉视频 | 亚洲精品一区二三区在线观看 | 亚洲一级免费视频 | 全部免费的毛片视频观看 | 亚洲人成网站色7799在线观看 | 亚洲一区二区三区高清网 | 亚洲国产成人精品久久 | 中日毛片 | a毛片免费播放全部完整 | 久久精品中文字幕首页 | 久久亚洲国产最新网站 | 国产三级小视频 |