守护线程

守护线程定义:所谓守护线程,是指在程序运行的时候在后台提供一种通用服务的线程。比如垃圾回收线程就是一个很称职的守护者,并且这种线程并不属于程序中不可或缺的部分。

因此,当所有的非守护线程结束时,程序也就终止了,同时会杀死进程中的所有守护线程。反过来说,只要任何非守护线程还在运行,程序就不会终止。

/**
 * @author wsy
 */
public class DaemonThreadDemo {
    public static void main(String[] args) {
        Thread thread = new Thread(new Runnable() {
            @Override
            public void run() {
                try {
                    Thread.sleep(2000);
                } catch (InterruptedException e) {
                    e.printStackTrace();
                }
                int count = 0;
                for (int i = 0; i < 100; i++) {
                    count += i;
                }
                //不会打印的输出 守护线程为用户线程服务 用户线程终止守护线程自动终止
                System.out.println("count的值为: " + count);

            }
        });

        thread.setDaemon(true);
        thread.start();
        System.out.println("main线程终止 jvm退出");
    }




}

 

守护线程的特点

  • 守护线程是运行在程序后台的线程;
  • 守护线程创建的线程,依然是守护线程;
  • 守护线程不会影响 JVM 的退出,当 JVM 只剩余守护线程时,JVM 进行退出;
  • 守护线程在 JVM 退出时,自动销
posted @ 2023-03-30 15:28  永哥伟大  阅读(47)  评论(0)    收藏  举报