• 运行在程序后台的一个特殊的线程
  • 当程序只剩下守护线程的时候,守护线程会自动退出
  • 守护线程不能持有任何需要关闭的资源,例如打开文件等,因为虚拟机退出时,守护线程没有任何机会来关闭文件,这会导致数据丢失。

如以下代码所示

/*** 守护线程*/
public class Demo5 {public static void main(String[] args) {System.out.println("主线程开始");//守护线程Thread t1=new Thread(()->{System.out.println("守护线程开始");//每隔1000毫秒打印一次,"无限执行"while (true){System.out.println("守护线程");try {Thread.sleep(1000);} catch (InterruptedException e) {e.printStackTrace();}}});//子线程Thread t2=new Thread(()->{System.out.println("子线程开始");//每隔1000毫秒打印一次for (int i = 0; i < 5; i++) {System.out.println("子线程");try {Thread.sleep(1000);} catch (InterruptedException e) {e.printStackTrace();}}System.out.println("子线程结束");});//设为守护线程t1.setDaemon(true);t1.start();t2.start();System.out.println("主线程结束");}
}

执行结果如下所示,当程序当中只剩下守护线程后,它便自动结束

主线程开始
主线程结束
守护线程开始
守护线程
子线程开始
子线程
守护线程
子线程
子线程
守护线程
子线程
守护线程
守护线程
子线程
守护线程
子线程结束

Java多线程—守护线程相关推荐

  1. java多线程 守护线程setDaemon

    守护线程 虚拟机分为用户线程和守护线程 虚拟机必须确保用户线程执行完毕 虚拟机不需要等待守护线程执行完毕 package state;public class TestDaemon {public s ...

  2. java多线程与线程间通信

    转自(http://blog.csdn.net/jerrying0203/article/details/45563947) 本文学习并总结java多线程与线程间通信的原理和方法,内容涉及java线程 ...

  3. Java多线程02(线程安全、线程同步、等待唤醒机制)

    Java多线程2(线程安全.线程同步.等待唤醒机制.单例设计模式) 1.线程安全 如果有多个线程在同时运行,而这些线程可能会同时运行这段代码.程序每次运行结果和单线程运行的结果是一样的,而且其他的变量 ...

  4. Java多线程之线程池配置合理线程数

    Java多线程之线程池配置合理线程数 目录 代码查看公司服务器或阿里云是几核的 合理线程数配置之CPU密集型 合理线程数配置之IO密集型 1. 代码查看公司服务器或阿里云是几核的 要合理配置线程数首先 ...

  5. Java多线程之线程池的手写改造和拒绝策略

    Java多线程之线程池的手写改造和拒绝策略 目录 自定义线程池的使用 四种拒绝策略代码体现 1. 自定义线程池的使用 自定义线程池(拒绝策略默认AbortPolicy) public class My ...

  6. Java多线程之线程池7大参数、底层工作原理、拒绝策略详解

    Java多线程之线程池7大参数详解 目录 企业面试题 线程池7大参数源码 线程池7大参数详解 底层工作原理详解 线程池的4种拒绝策略理论简介 面试的坑:线程池实际中使用哪一个? 1. 企业面试题 蚂蚁 ...

  7. Java多线程之线程池详解

    Java多线程之线程池详解 目录: 线程池使用及优势 线程池3个常用方式 线程池7大参数深入介绍 线程池底层工作原理 1. 线程池使用及优势 线程池做的工作主要是控制运行的线程的数量,处理过程中将任务 ...

  8. Java多线程之线程通信之生产者消费者阻塞队列版

    Java多线程之线程通信之生产者消费者传统版和阻塞队列版 目录 线程通信之生产者消费者传统版 线程通信之生产者消费者阻塞队列版 1. 线程通信之生产者消费者传统版 题目: 一个初始值为零的变量,两个线 ...

  9. Java多线程之线程虚假唤醒

    Java多线程之线程虚假唤醒 本文目录提纲 问题:两个线程对一个初始值为零的变量操作,实现一个线程加一,另一个线程减一,来十次. 问题:四个线程对一个初始值为零的变量操作,实现两个线程加一,另外两个线 ...

最新文章

  1. [转]C++11 随机数学习
  2. hibernate.hbm.xml配置文件解析
  3. win10家庭版远程桌面连接出现身份验证错误
  4. xposed hook java_[原创]Android Hook 系列教程(一) Xposed Hook 原理分析
  5. 【转】HashMap,ArrayMap,SparseArray源码分析及性能对比
  6. 如何添加评论_如何运用运镜+转场让视频更酷炫
  7. jQuery.extend()、jQuery.fn.extend()扩展方法具体解释
  8. NLP领域,哪些综述性的文章值得推荐?
  9. VSZ、RSS、Pss的区别和含义
  10. Ajax之搭建一个基本的Ajax框架(技术分析篇)
  11. Android TableLayout 表格布局详解
  12. 实现写邮箱html页面,用html写的简单的邮箱登陆界面
  13. jQuery each()跳出循环
  14. 样条插值(Spline)
  15. 小程序设置appId
  16. 机器学习kaggle案例:沃尔玛招聘 - 商店销售预测
  17. Thinkphp5使用ZipArchive批量打包下载图片
  18. 每一个圣人都有一个过去
  19. 计算机专利英语笔译,基于Trados2014的专利翻译实践报告-英语笔译专业论文.docx...
  20. 腾讯游戏深度定制 ROG游戏手机3天生高能释放

热门文章

  1. LabView2014的串口使用之--VISA 驱动下载安装篇
  2. libnet发包java语言_Linux下C语言+libnet实现ARP数据包广播
  3. 精彩实录 | POW'ER 2020 DEFI 创新者大会首日,DeFi创新领袖都聊了啥?
  4. uboot 修改启动logo
  5. css背景图不失真_CSS背景background图片
  6. ADSP-21489的开发详解:VDSP+自己编程写代码开发(8-延时算法)
  7. bootstrap editable 动态改变列的编辑状态
  8. 报表中的多维数据分析,并没有你想象的那么难!
  9. SpringBoot集成RedisTemplate
  10. 为什么地球的生物都是碳基生命?科学家:大自然环境选择的结果