Java中的守护线程学习笔记

1. 概念

守护线程其实也是一个线程,它与用户线程的不同之处就在于它的生命周期,当程序中其他线程都结束时,守护线程就会结束自己的生命周期。只要程序中还有一个线程还没有结束,守护线程就会一直工作。

守护线程中产生的新线程也是守护线程

2. 守护线程的设置

t.setDaemon(true);

默认守护线程是false,需要程序员手动设置。值得注意的一点是,线程需要在start之前设置为守护线程,否则会抛出一个IllegalThreadStateException异常

3. 守护线程的应用

  • GC就是一个守护线程
  • 分布式系统中的心跳线程也是一个守护线程

4. 实例

package com.ywq.concurrency.MyTest;

public class TestDaemon {
    public static void main(String[] args) {
        Thread t1=new Thread(()->{
            Thread t2=new Thread(()->{
                while(true){
                    System.out.println("t2");
                }
            });
            t2.setDaemon(true);
            t2.start();
        });

        t1.start();

        try {
            Thread.sleep(5000);
        } catch (InterruptedException e) {
            e.printStackTrace();
        }

    }
}

在主线程中创建一个子线程,子线程中创建一个守护线程后就停止了,让主线程休眠5秒钟,这时主线程还在运行中,所以守护线程会一直打印,5秒后,主线程也挂掉了,处了守护线程外,没有其他线程了,所以守护线程也结束了。

  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值