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

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

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

瀏覽:133日期: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 狀態(tài),因為還在等待鎖。線程 start 并不代表馬上會自行 run(),也就是說后 start() 的線程的 run() 很有可能先執(zhí)行。

回答2:

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

標簽: java
相關文章:
主站蜘蛛池模板: 国产成人污污网站在线观看 | 色在线观看视频 | 国产真实伦在线观看 | 亚洲区精品 | 欧美韩日在线 | 日本成a人片在线观看网址 日本成人一区二区 | 免费看一级黄色录像 | 国产三级日产三级 | 国产精品久久在线 | 国产精品卡哇伊小可爱在线观看 | 精品国产三级在线观看 | 亚洲午夜久久久久国产 | 国产美女一级高清免费观看 | 9191精品国产免费不久久 | 黄网址在线观看 | 久久综合一区二区三区 | 色综合久久亚洲国产日韩 | 日本无卡无吗在线 | 全午夜免费一级毛片 | 中文字幕亚洲精品 | 亚洲精品香蕉一区二区在线观看 | 亚洲精品国产一区二区 | 国产一区视频在线 | 亚洲欧美日韩不卡一区二区三区 | 欧美人妖猛交 | 国产成人亚洲精品无广告 | 国产三级网站 | 欧美乱xxxxxxxxx| 偷看老师裙底无内裤福利图片 | 九九九色视频在线观看免费 | 中国xxxx视频播放50 | 亚洲最大情网站在线观看 | 日韩中文字幕免费在线观看 | 亚洲最新 | 一本一本久久a久久精品综合麻豆 | 能免费看黄的网站 | 特黄视频免费看 | 亚洲综合第一区 | 亚洲欧美久久精品一区 | 欧美人成片免费看视频不卡 | 欧美在线a级高清 |