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

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

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

瀏覽:139日期: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
相關文章:
主站蜘蛛池模板: 日韩福利视频精品专区 | a一级毛片 | 精品无码三级在线观看视频 | 伊人久久网站 | 国产精品自拍视频 | 欧美一级淫片免费播放口 | 六月丁香婷婷天天在线 | 国产特黄特色一级特色大片 | 久草视频手机在线观看 | 国产无毛| 一区二区三区国产精品 | 最新最好看免费毛片基地 | 欧美一级毛片高清免费观看 | 日韩在线一区二区三区免费视频 | 亚洲精品欧洲一区二区三区 | 亚洲线精品久久一区二区三区 | 国产亚洲小视频 | 一本一道波多野结衣456 | 欧美一级片在线观看 | 99久久国产综合精品国 | 国产在线观看精品一区二区三区91 | 国产成人精品视频频 | 国产亚洲精品久久久久久久久激情 | 全部在线美女网站免费观看 | 欧美成人午夜免费完成 | 精品无码久久久久久国产 | 成人国产一区二区三区精品 | 久久a级片| 91精品国产免费久久久久久 | 精品国产看高清国产毛片 | 玖玖香蕉视频 | 亚洲 欧美 视频 | 国产成人mv在线观看入口视频 | 中文精品爱久久久国产 | 韩日精品| 一级做a爱视频 | 国产精品夜色视频一级区 | 欧美成人xxxx | 亚洲成aⅴ人片在线影院八 亚洲成av人片在线观看 | 精品国产欧美另类一区 | 精品视频在线观看一区二区三区 |