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

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

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

瀏覽:124日期: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(); 調(diào)用時(shí) rb4 還沒有進(jìn)入 wait 狀態(tài),因?yàn)檫€在等待鎖。線程 start 并不代表馬上會(huì)自行 run(),也就是說后 start() 的線程的 run() 很有可能先執(zhí)行。

回答2:

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

標(biāo)簽: java
相關(guān)文章:
主站蜘蛛池模板: 国产永久在线视频 | 99久久亚洲国产高清观看 | 国产黄色福利 | 91日本视频 | 免费在线黄网站 | 色婷婷中文字幕 | 免费看国产黄色片 | 亚洲欧美日韩国产一区二区三区精品 | 男女性高爱潮免费的国产 | 一级片在线免费播放 | 2020国产精品自拍 | 亚洲欧美日韩高清中文在线 | 国产精品久久久久久久人人看 | 亚洲精品国产一区二区在线 | 乡下女色又黄一级毛片 | 综合在线亚洲 | 欧美一级毛片高清视频 | 免费视频精品一区二区三区 | 日本高清在线精品一区二区三区 | 国产亚洲精品成人婷婷久久小说 | 国产精品国产三级国产an不卡 | 色婷婷六月桃花综合影院 | 精品一本久久中文字幕 | 香蕉视频网址 | 青青草精品在线视频 | 成年女人免费v片 | 久久视热这只是精品222 | 天天看天天摸色天天综合网 | 日韩成人综合网 | 国产成人小视频在线观看 | 黄色a一级 | 日韩精品一区二区三区国语自制 | www.久久精品视频 | 精品精品国产高清a毛片牛牛 | 亚洲精品久久久久久久777 | 亚洲成人美女 | 国产裸舞福利在线视频合集 | 欧美日韩无 | 午夜精品aaa国产福利 | 色婷婷亚洲精品综合影院 | 黄在线视频播放免费网站 |