想象一下,您有一个应用程序A和一个类似Thread的类:
public class MyThread extends Thread {...}
从A开始,使用以下命令启动线程:
new MyThread.start();
然后,当应用程序A完成时,MyThread也停止吗?否则,如何确保它会被中断?
答案 0 :(得分:3)
线程可以在Java中运行的方式有两种:
当JVM退出时,它检查是否还有任何非守护进程线程在运行,并且它将等待那些退出。如果您不希望JVM等待这些后台线程,请确保在线程上调用方法setDaemon(true)
。
有关更多详细信息,请查看另一个问题:
What is a daemon thread in Java?
此外,作为补充,目前,在Java中运行线程的推荐方法是实现Runnable
,而不是扩展Thread
。在此处查看更多详细信息。
答案 1 :(得分:0)
默认情况下,不,JVM将继续运行直到线程退出。您可以使用System.exit
完全从任何线程停止JVM,或者使用Thread.setDaemon(true)
将您的线程标记为守护程序,这意味着它不会阻止JVM退出。