对Java程序来说,只要还有一个前台线程在运行,这个进程就不会结束, 如果 一个进程中只有后台 线程在运行,这个进程就会结束。前台线程是相对后台线程而言的,前面所介绍的线程都是前台线程。那么什么样的线程是后台线程呢?如果某个线程对象在启动( 调用 start() 方法)之前调用了setDaemon( true) 方法,这个线程就变成了后台线程。下面看一下进程中只有后台线程在运行的情况。
/**
* Created by xabcd on 2019/2/17.
*/
public class TestDaemon {
public static void main(String args[]) {
ThreadTest t = new ThreadTest();//先背下
Thread tt = new Thread(t);//先背下
tt.setDaemon(true);//先背下
tt.start();//先背下
}
}
class ThreadTest implements Runnable
{
public void run()
{
while(true)
{
System.out.println(Thread.currentThread().getName()+"is running");
}
}
}
结果:
Thread-0is running
结果:虽然创建了一个无限循环的线程,但因为它是后台线程,因此整个进程在主线进程结束时就随之终止运行了,这验证了进程中只有后台线程运行时,进程曾就会结束的说法。
