armyTaskOfSuiDynasty.keepRunning=false;與armyTaskOfRevolt.keepRunning=false;什么以時候執行呢?
?armyTaskOfSuiDynasty.keepRunning=false;與armyTaskOfRevolt.keepRunning=false;什么以時候執行呢?沒有寫到軍隊線程中的while循環內,怎么會被調用到呢?
==========================================
//啟動線程,讓軍隊開始作戰
?? ??? ?armyOfSuiDynasty.start();
?? ??? ?armyOfRevolt.start();
?? ??? ?
?? ??? ?//舞臺線程休眠50毫秒,大家專心觀看軍隊廝殺
?? ??? ?try {
?? ??? ??? ?Thread.sleep(50);
?? ??? ?} catch (InterruptedException e) {
?? ??? ??? ?e.printStackTrace();
?? ??? ?}
?? ??? ?
?? ??? ?armyTaskOfSuiDynasty.keepRunning=false;
?? ??? ?armyTaskOfRevolt.keepRunning=false;
2018-06-30
我的理解是這樣的 既然是多線程,多天線程同時進行,在農民和隋軍的那兩條線程進行的同時,就是main下的主線程也在運行(Stage),它在執行農民和隋軍的線程的同時,也在一直往下運行,運行到armyTaskOfSuiDynasty.keepRunning=false;
?armyTaskOfRevolt.keepRunning=false;
農民和隋軍的線程自然也就停止了。
2019-06-20
在主線程中加入sleep讓軍隊線程獲得時間資源,進行打斗。軍隊線程中的yield使雙方的打斗隨機進行,所以次數不確定。因為volatile的存在所以其他的線程可以修改runnable的值,這里的其他線程值主線程(stage),即在sleep休眠時間結束后執行armyTaskOfSuiDynasty.keepRunnable = false; armyTaskOfRevolt.keepRunnable = false;
使得軍隊的對戰結束
2018-05-30
這個我理解應該是在循環里打夠了多少回合,跳出循環直接給?armyTaskOfSuiDynasty.keepRunning和??armyTaskOfRevolt.keepRunning賦值false,意味著結束