如果我在线程扩展类中调用没有run()的Start方法会发生什么?

时间:2017-09-25 18:03:16

标签: java multithreading

我的JavaApplication类扩展了Thread类,但没有run方法。如果我运行下面的代码,start方法是如何工作和行为的?

public class JavaApplication1 extends Thread {
    // public void run(){}

    public static void main(String[] args) {
        JavaApplication ja = new JavaApplication();
        ja.start();
    }
}

有人可以对此提出一些建议吗?

3 个答案:

答案 0 :(得分:1)

它将在Thread中运行run()方法,该方法将不执行任何操作并结束。

来自JDK 8

{{1}}

答案 1 :(得分:1)

默认情况下,Thread类中的run()方法:

/* What will be run. */
private Runnable target;

@Override
public void run() {
    if (target != null) {
        target.run();
    }
}

所以,如果你不会覆盖 run()方法 - 什么都不会发生,目标将为null

答案 2 :(得分:0)

没什么特别的。 Thread类包含run()方法的默认实现。默认情况下没有任何内容