国产成人精品久久免费动漫-国产成人精品天堂-国产成人精品区在线观看-国产成人精品日本-a级毛片无码免费真人-a级毛片毛片免费观看久潮喷

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

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

瀏覽:142日期: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
相關文章:
主站蜘蛛池模板: 综合在线视频精品专区 | 抱着cao才爽免费观看 | 国产成人咱精品视频免费网站 | 97在线视频免费观看费观看 | 欧美一级aa毛片禁片 | 2021精品国产品免费观看 | 国产成人免费网站 | 91久久精品国产91久久性色tv | 91久久精品国产一区二区 | 东京一区二区三区高清视频 | 欧美另类极品 | 国产成人毛片精品不卡在线 | 久久久成人网 | 91精品国产色综合久久不 | 欧美久久久久 | 欧美一级特黄aaaaaa在线看首页 | 美女扒开双腿让男人爽透视频 | 精品国产爱久久 | 日本高清视频一区二区 | 国产精品日韩一区二区三区 | 亚洲欧美在线精品一区二区 | 国产成人在线观看免费网站 | 五月色一区二区亚洲小说 | 成年人在线免费观看视频网站 | 日韩黄在线观看免费视频 | 88av在线视频 | 国产精品资源在线 | 欧美18www | 手机在线观看黄色网址 | 成人性色生活片免费网 | 免费一级毛片麻豆精品 | 一级美女视频 | 免费一级毛片在级播放 | 亚洲精品成人一区二区aⅴ 亚洲精品成人一区二区www | 亚洲视频免费在线观看 | 亚洲国产精品久久精品成人 | 一级视频在线免费观看 | 日韩欧美一级毛片精品6 | 免费一级特黄 欧美大片 | 国产一级毛片视频 | 欧美性色大片 |