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

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

為什么在stage的run方法中不設置sleep方法,那么keepRunning值會直接設置為false?

http://img1.sycdn.imooc.com//59591dd2000156bc08780590.jpg

我不設置sleep后,子線程直接輸出結束語句了,沒有執行while循環,這是為什么?

難道如果不設置sleep,那么只會執行Stage線程?所以即使在stage的run方法中即使start了其他線程,也不會執行?

正在回答

2 回答

其他線程在他的start()方法執行后,并沒有立即獲得cpu時間,所以里面的run()方法沒有立即執行,等到stage線程讓出cpu時間后才會執行。但是你沒休眠,stage線程會執行到賦值keeprunning為false,stage線程這時讓出cpu時間,其他線程再試行,但已經不會打印輸出語句了。如果你有休眠,stage線程執行到休眠時就讓出了cpu時間,后面的給keeprunning賦值沒有執行,所以可以打印、

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

qq_大熊_14

謝謝!
2017-08-26 回復 有任何疑惑可以回復我~

是不是即使調了start方法,只要沒有釋放資源,其他線程也無法執行?

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

舉報

0/150
提交
取消

為什么在stage的run方法中不設置sleep方法,那么keepRunning值會直接設置為false?

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

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

幫助反饋 APP下載

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

公眾號

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