第七色在线视频,2021少妇久久久久久久久久,亚洲欧洲精品成人久久av18,亚洲国产精品特色大片观看完整版,孙宇晨将参加特朗普的晚宴

為了賬號安全,請及時綁定郵箱和手機立即綁定
已解決430363個問題,去搜搜看,總會有你想問的

多線程wait()釋放鎖嗎?那么這個問題怎么解決。

多線程wait()釋放鎖嗎?那么這個問題怎么解決。

慕工程2701759 2017-08-02 21:11:01
package?thread; public?class?TestSleep?implements?Runnable?{ private?int?time?=?10; private?Object?lock?=?new?Object(); public?static?void?main(String[]?args)?{ //?TODO?Auto-generated?method?stub TestSleep?a?=?new?TestSleep(); Thread?t1?=?new?Thread(a); Thread?t2?=?new?Thread(a); t1.start(); t2.start(); } @Override public?void?run()?{ //?TODO?Auto-generated?method?stub synchronized?(lock)?{ for?(int?i?=?0;?i?<?10;?i++)?{ try?{ if?(time?==?5) lock.wait();//Thread.sleep(3000); //lock.notify(); time--; System.out.println(Thread.currentThread().getName()?+?"****"?+?time); }?catch?(Exception?e)?{ //?TODO?Auto-generated?catch?block e.printStackTrace(); } } } } }運行結(jié)果Thread-0****9Thread-0****8Thread-0****7Thread-0****6Thread-0****5按理來說,線程1搶到鎖,然后執(zhí)行,到wait(),釋放鎖,應該CPU會運行其他線程,為什么運行到這里就停了(沒有完全運行完,沒有真正停止)
查看完整描述

2 回答

?
慕工程2701759

TA貢獻16條經(jīng)驗 獲得超17個贊

這個問題我自己知道了,我應該把time--往上面移動到23行,不然time一直等于5導致兩個線程一直掛起,那么新的問題來了,線程一被我掛起,線程二應該完全輸出,都是線程一還能繼續(xù)輸出。為什么?

查看完整回答
反對 回復 2017-08-02
  • 禿頭披風俠0
    禿頭披風俠0
    lock是你的鎖不是你的子線程 它wait有什么用
  • 慕工程2701759
    慕工程2701759
    那怎么讓我的子線程wait?
  • 慕工程2701759
    慕工程2701759
    老哥,問題已經(jīng)解決。我那樣寫沒錯,lock.wait()意思不是lock等待,是當前線程進入等待lock信號的狀態(tài),讓出鎖。
  • 2 回答
  • 0 關注
  • 2541 瀏覽
慕課專欄
更多

添加回答

舉報

0/150
提交
取消
微信客服

購課補貼
聯(lián)系客服咨詢優(yōu)惠詳情

幫助反饋 APP下載

慕課網(wǎng)APP
您的移動學習伙伴

公眾號

掃描二維碼
關注慕課網(wǎng)微信公眾號