我正在自学 Java 线程,我注意到一些让我有点困惑的东西。我做了一个名为engine
implementation的类Runnable
。run 方法只是打印“Hello World”,休眠一秒钟,然后重复。
在我的主要方法中,我有:
public static void main(String[] args) {
Thread thread = new Thread(engine);
thread.start();
System.out.println("Done.");
}
正如我所料,我看到了“Hello World”和“Done”。打印的很快,说明main方法已经结束了,但没想到我开始的线程在main结束后还在运行。
为什么程序在 main 退出后仍继续执行?我原以为当 main 退出时,进程会终止,所有线程都会被强制清理。这是否意味着每个线程都必须显式地加入/终止 Java 程序才能终止?