ArmyRunnable armyTaskOfSuiDynasty = new ArmyRunnable();
ArmyRunnable armyTaskOfRevolt = new ArmyRunnable();
为啥要实例化两次?
不能实例化一次,然后启动两个线程?
Thread armyOfSuiDynasty = new Thread(armyTask,"隋军");
Thread armyOfRevolt = new Thread(armyTask,"农民起义军");
因为创建线程只有两种方法:其一是实例化Thread类或者子类,其二是实现Runnable接口;
为什么要实例化两次呢?因为实现Runnable接口之后,还要调用包含“实现Runnable接口”的Thread类的构造方法,才会创建一个线程;
第一次实例化 创建的是ArmyRunnable下的对象,第二次实例化创建的才是Thread对象,也可以这样写:
Thread armyOfSuiDynasty = new Thread(new ArmyRunnable(),"隋军");
代表这是ArmyRunnable对象的一个线程
实例化一次只能创建一个对象啊,现在需要两个对象,隋军和农民军,所以两次,因为军队战斗方法一样的,所以不需要单独在写一个线程