线程和runnable实例区别

来源:2-5 Java线程-隋唐演义实战开发---关键先生

359031282

2016-10-28 22:19

ArmyRunnable armyTaskOfSuiDynasty = new ArmyRunnable();

ArmyRunnable armyTaskOfRevolt = new ArmyRunnable();

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

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

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

写回答 关注

3回答

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

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

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

    359031...

    非常感谢!

    2017-09-20 21:28:54

    共 1 条回复 >

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

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

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

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

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

深入浅出Java多线程

带你一起深入浅出多线程,掌握基础,展望进阶路线

186068 学习 · 502 问题

查看课程

相似问题