舞臺休眠sleep(50) 的理解 請大家幫我看看對嗎?
主要在于這個yield()方法
yield()讓出線程后--》 程序應該已經跳出當前軍隊這個線程了--》然后隋軍,起義軍,舞臺三條線程開始爭奪運行權, 但是正好這時設置了 舞臺休眠sleep(50) 導致舞臺無法參與競爭--》所以只有隋軍和起義軍參與爭奪。?
而且整個程序運行時間正好就是舞臺休眠的時間 ,舞臺休眠完成后 --》隋軍和起義軍停止攻擊 (keepRunning=false) --》最后中斷舞臺線程(join()) .
所以我理解為:打印結果輸出的內容全部都是在舞臺休眠sleep(50)(50毫秒)內完成的對嗎?
2016-03-24
不不,第一這個yield(),只是在軍隊這個線程里,和舞臺沒有關系;第二休眠50毫秒是整個舞臺停止進程50毫秒,舞臺停止的50毫秒中,軍隊線程是繼續執行的;第三join()方法執行后會讓出所有資源給它的對象,而在打印的輸出實在無時無刻不進行的,也就在舞臺里的打印輸出會因為舞臺線程的休眠而休眠