我很想知道是否可以修改主线程的run方法,就像在其他线程中一样,我们覆盖run方法并定义所需的行为。
我也可以知道我们在main方法中编写的代码是否实际上被添加到主线程的run方法中,这是在主线程运行时执行的内容。
答案 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()
并获得一些东西)。