亚洲精品久久久中文字幕-亚洲精品久久片久久-亚洲精品久久青草-亚洲精品久久婷婷爱久久婷婷-亚洲精品久久午夜香蕉

您的位置:首頁技術文章
文章詳情頁

java - wait(),notify(),notifyAll() T2 start! T2 end! T1 start! 為什么會阻塞

瀏覽:100日期:2024-01-08 10:53:47

問題描述

public class Thread04 { final Object object = new Object();Runnable rb4 = new Runnable() { public void run(){synchronized (object){System.out.println('T1 start!');try { object.wait();} catch (InterruptedException e) { e.printStackTrace();}object.notify();System.out.println('T1 end!'); }}};Runnable rb5 = new Runnable() { public void run(){synchronized (object){ System.out.println('T2 start!'); object.notify(); System.out.println('T2 end!'); }}};public static void main(String[] args) {Thread04 th = new Thread04();new Thread(th.rb4).start();new Thread(th.rb5).start(); } }

問題解答

回答1:

rb5 的 object.notify(); 調用時 rb4 還沒有進入 wait 狀態,因為還在等待鎖。線程 start 并不代表馬上會自行 run(),也就是說后 start() 的線程的 run() 很有可能先執行。

回答2:

rb4在運行獲得object的對象鎖,輸出T1 start!,然后調用wait(),該方法會讓rb4掛起,同時釋放鎖,阻塞。 這時候rb5獲得鎖,輸出T2 start!。然后調用object.notify();,雖然這里打算讓rb4運行,但是rb5的鎖并沒有釋放,所以rb4還是處于阻塞。 rb5還是繼續運行,輸出T2 end!。 rb5運行結束,釋放鎖, rb4運行輸出T1 end!。

標簽: java
相關文章:
主站蜘蛛池模板: 国产乱码精品一区二区三 | 久久久一区二区三区 | 午夜影院在线视频 | 97精品国产福利一区二区三区 | 特级黄aaaaaaaaa毛片 | 九九自拍视频 | 国产成人yy精品1024在线 | 久久久久香蕉视频 | 国产叼嘿久久精品久久 | 欧美激情首页 | 看久久 | 中国女人三级在线播放 | 欧洲第一区第二区第三区 | a毛片免费全部在线播放毛 a毛片免费全部播放毛 | 国产精品视频久久久久 | 亚洲欧美精品综合中文字幕 | 国产免费一区不卡在线 | 精品欧美一区二区三区四区 | 日韩免费三级 | 免费一级欧美片在线观免看 | 免费一看一级毛片 | 制服丝袜自拍偷拍 | 国产亚洲一区二区三区在线观看 | 国产大片线上免费看 | a级毛片毛片免费很很综合 a级毛片在线观看 | 日本亚洲精品色婷婷在线影院 | 很黄的网站在线观看 | 国产一卡2卡3卡四卡高清 | 尤物蜜芽福利国产污在线观看 | 亚洲精品一区二区手机在线 | 一级全黄色毛片 | 国产国产人成免费视频77777 | 免费看的黄视频 | 国产草草 | 综合免费一区二区三区 | 国产精品国产亚洲精品不卡 | 青青草国产一区二区三区 | 色视频免费观看高清完整 | 成年人快播| 搡女人视频免费 | 午夜精品视频在线看 |