问答详情
源自:2-5 Java线程-隋唐演义实战开发---关键先生

线程和runnable实例区别

ArmyRunnable armyTaskOfSuiDynasty = new ArmyRunnable();

ArmyRunnable armyTaskOfRevolt = new ArmyRunnable();

为啥要实例化两次? 不能实例化一次,然后启动两个线程?

Thread  armyOfSuiDynasty = new Thread(armyTask,"隋军");

Thread  armyOfRevolt = new Thread(armyTask,"农民起义军");

提问者:359031282 2016-10-28 22:19

个回答

  • hyrlh
    2016-11-06 11:25:36
    已采纳

    因为创建线程只有两种方法:其一是实例化Thread类或者子类,其二是实现Runnable接口;

    为什么要实例化两次呢?因为实现Runnable接口之后,还要调用包含“实现Runnable接口”的Thread类的构造方法,才会创建一个线程;

  • 锦衣夜行_0
    2016-11-08 14:59:34

    第一次实例化 创建的是ArmyRunnable下的对象,第二次实例化创建的才是Thread对象,也可以这样写:
    Thread  armyOfSuiDynasty = new Thread(new ArmyRunnable(),"隋军");

    代表这是ArmyRunnable对象的一个线程

  • 世事如棋_2016
    2016-10-28 23:17:40

    实例化一次只能创建一个对象啊,现在需要两个对象,隋军和农民军,所以两次,因为军队战斗方法一样的,所以不需要单独在写一个线程