亚洲在线久爱草,狠狠天天香蕉网,天天搞日日干久草,伊人亚洲日本欧美

為了賬號安全,請及時綁定郵箱和手機立即綁定

舞臺休眠sleep(50) 的理解 請大家幫我看看對嗎?

主要在于這個yield()方法

yield()讓出線程后--》 程序應該已經跳出當前軍隊這個線程了--》然后隋軍,起義軍,舞臺三條線程開始爭奪運行權, 但是正好這時設置了 舞臺休眠sleep(50) 導致舞臺無法參與競爭--》所以只有隋軍和起義軍參與爭奪。?

而且整個程序運行時間正好就是舞臺休眠的時間 ,舞臺休眠完成后 --》隋軍和起義軍停止攻擊 (keepRunning=false) --》最后中斷舞臺線程(join()) .


所以我理解為:打印結果輸出的內容全部都是在舞臺休眠sleep(50)(50毫秒)內完成的對嗎?

正在回答

1 回答

不不,第一這個yield(),只是在軍隊這個線程里,和舞臺沒有關系;第二休眠50毫秒是整個舞臺停止進程50毫秒,舞臺停止的50毫秒中,軍隊線程是繼續執行的;第三join()方法執行后會讓出所有資源給它的對象,而在打印的輸出實在無時無刻不進行的,也就在舞臺里的打印輸出會因為舞臺線程的休眠而休眠

0 回復 有任何疑惑可以回復我~
#1

qq_老表_1 提問者

yield()是不是只能運行此線程類的對象啊? 是不是應為 隋軍和起義軍都是同一個線程類實例化的對象 所以yield()只能用于 隋軍和起義軍 ,而舞臺和他們不是一個線程類所以不能參與線程資源競爭?
2016-03-24 回復 有任何疑惑可以回復我~
#2

u_sicAsiaChina_0 回復 qq_老表_1 提問者

是的,你寫在哪,他就只對誰起作用。舞臺可以說是主線程,yield()用到再子線程中,使兩個軍隊線程在執行了yield()后回到了可執行狀態,所以說之后誰會執行并不一定,要看虛擬機會讓誰執行,而舞臺進程中并沒有yield(),所以舞臺并不會退出資源到可執行狀態。舞臺只是休眠指定時間后繼續執行
2016-03-29 回復 有任何疑惑可以回復我~
#3

qq_老表_1 提問者

非常感謝!
2016-03-31 回復 有任何疑惑可以回復我~

舉報

0/150
提交
取消

舞臺休眠sleep(50) 的理解 請大家幫我看看對嗎?

我要回答 關注問題
微信客服

購課補貼
聯系客服咨詢優惠詳情

幫助反饋 APP下載

慕課網APP
您的移動學習伙伴

公眾號

掃描二維碼
關注慕課網微信公眾號