簡化老師線程創建代碼
老師的代碼在線程被創建時的地方可以簡化如下,列出僅供參考:
首先ArmyRunnable類可以加上一個構造函數,在構造函數中實現Thread類和start方法
public?class?ArmyRunnable?implements?Runnable?{ ???? Thread?thr; //volatile保證了線程可以正確的讀取其他線程寫入的值 //可見性?ref?JMM,?happens-before原則 ????????volatile?boolean?keepRunning; ArmyRunnable(String?name)?{ keepRunning?=?true; thr?=?new?Thread?(this,name);//this?返回一個對ArmyRunnable對象的引用 thr.start(); }
然后Stage類的線程創建代碼改動如下
????????????????ArmyRunnable?armyTaskOfSuiDynasty?=?new?ArmyRunnable("隋軍"); ArmyRunnable?armyTaskOfRevolt?=?new?ArmyRunnable("農民起義軍");
2015-10-17
什么時候用Thread創建線程,什么時候用Runnable接口呢?
2015-07-20
因為這樣可以創建Runnable對象的同時創建線程,簡化了代碼實現。
2015-07-18
為什么在 Runnable 的實例中創建 線程?????