我可以修改主线程的run方法吗?

时间:2012-09-06 18:51:25

标签: java

我很想知道是否可以修改主线程的run方法,就像在其他线程中一样,我们覆盖run方法并定义所需的行为。

我也可以知道我们在main方法中编写的代码是否实际上被添加到主线程的run方法中,这是在主线程运行时执行的内容。

2 个答案:

答案 0 :(得分:0)

通常,在整个应用寿命期间不使用主要方法。您只需使用它来初始化并运行其他线程,然后让它终止:

class Main {
  public static void main(String[] args) {
    new firstThreadImplementation().start();
    // new secondThreadImplementation().start();
    new initGuiThread().start();
    // we are finished here and don't need this thread anymore
  }
}

因此,您可以直接控制已启动线程的run()方法。

答案 1 :(得分:0)

不,您无法覆盖用于执行main()方法的线程。这个线程通过JVM魔法存在,并且永远不会调用它的run()方法(为了更准确,它的start()方法永远不会被调用;你可以在源代码中看到这个效果的注释)。它只是维护一个常规的线程模型(即每个线程都可以调用Thread.currentThread()并获得一些东西)。