gpt4 book ai didi

java - 为什么线程比 Java 中的 main 方法生命周期更长?

转载 作者:IT老高 更新时间:2023-10-28 20:59:29 26 4
gpt4 key购买 nike

我正在自学 Java 线程,我注意到一些让我有点困惑的东西。我创建了一个名为 engine 的类来实现 Runnable。 run 方法只是打印“Hello World”, hibernate 一秒钟,然后重复。

在我的主要方法中,我有:

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 程序终止?

最佳答案

因为它就是这样工作的。当 System.exit() 被调用,或者最后一个非守护线程停止运行时,程序退出。

这是有道理的。例如,如果没有这条规则,每个只包含生成 GUI 的 Java 程序都必须无限等待()以避免程序立即退出。

关于java - 为什么线程比 Java 中的 main 方法生命周期更长?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13904745/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com