为什么线程在 Java 中的 main 方法中比主方法的寿命更长?
2022-09-01 06:27:13
我正在自学Java线程,我注意到一些让我有点困惑的事情。我做了一个名为 implementing 的类。run 方法只需打印“Hello World”,休眠一秒钟,然后重复。engine
Runnable
在我的主要方法中,我有:
public static void main(String[] args) {
Thread thread = new Thread(engine);
thread.start();
System.out.println("Done.");
}
正如我所料,我看到“Hello World”和“Done.”打印得很快,这意味着主要方法已经到达终点,但我没想到的是,即使在到达main的结尾之后,我开始的线程仍然继续运行。
为什么程序即使在主退出后仍继续执行?我本来以为当main退出时,进程将终止,所有线程将被强制清理。这是否意味着必须显式连接/终止每个线程才能终止 Java 程序?