没人用的昵称
2015-07-17 18:31
老师的代码在线程被创建时的地方可以简化如下,列出仅供参考:
首先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("农民起义军");
什么时候用Thread创建线程,什么时候用Runnable接口呢?
因为这样可以创建Runnable对象的同时创建线程,简化了代码实现。
为什么在 Runnable 的实例中创建 线程????
深入浅出Java多线程
186065 学习 · 502 问题
相似问题