久久福利_99r_国产日韩在线视频_直接看av的网站_中文欧美日韩_久久一

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

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

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

問(wèn)題描述

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(); } }

問(wèn)題解答

回答1:

rb5 的 object.notify(); 調(diào)用時(shí) rb4 還沒(méi)有進(jìn)入 wait 狀態(tài),因?yàn)檫€在等待鎖。線(xiàn)程 start 并不代表馬上會(huì)自行 run(),也就是說(shuō)后 start() 的線(xiàn)程的 run() 很有可能先執(zhí)行。

回答2:

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

標(biāo)簽: java
相關(guān)文章:
主站蜘蛛池模板: 日本不卡免费新一二三区 | 黄色大片观看 | 在线中文字幕av | 亚洲欧洲一区二区三区 | 激情综合在线 | 精品日韩一区 | 免费精品 | 国产日韩欧美 | 欧美成年黄网站色视频 | 一区二区国产精品 | 成人夜晚看av | 欧美国产一区二区 | 成人午夜在线视频 | 可以免费看的av | 日韩成人免费av | 欧美日韩视频在线播放 | 亚洲一区丝袜 | 日韩城人网站 | 日韩专区视频 | 婷婷中文字幕 | japanhd熟睡侵犯 | 伊人欧美视频 | 天天操网 | 国产成人高清 | 97伦理电影院 | 免费v片| 亚洲成人免费在线 | 成人午夜啪啪好大 | 亚洲精品成人a8198a | 超碰8| 欧美精品综合在线 | 国产精品久久久久久吹潮 | 在线播放亚洲 | 国产一区二区在线免费观看 | 精久久| 99热少妇| 日本国产一区二区 | 成人亚洲一区二区 | yy6080久久伦理一区二区 | 在线观看中文字幕 | 日韩不卡一区二区 |