java——后台线程SetDaemon的使用

2019年2月17日21:57:34 发表评论 1,120 views

对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

结果:虽然创建了一个无限循环的线程,但因为它是后台线程,因此整个进程在主线进程结束时就随之终止运行了,这验证了进程中只有后台线程运行时,进程曾就会结束的说法。


发表评论

:?: :razz: :sad: :evil: :!: :smile: :oops: :grin: :eek: :shock: :???: :cool: :lol: :mad: :twisted: :roll: :wink: :idea: :arrow: :neutral: :cry: :mrgreen: