Java多线程—守护线程
- 运行在程序后台的一个特殊的线程
- 当程序只剩下守护线程的时候,守护线程会自动退出
- 守护线程不能持有任何需要关闭的资源,例如打开文件等,因为虚拟机退出时,守护线程没有任何机会来关闭文件,这会导致数据丢失。
如以下代码所示
/*** 守护线程*/
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多线程—守护线程相关推荐
- java多线程 守护线程setDaemon
守护线程 虚拟机分为用户线程和守护线程 虚拟机必须确保用户线程执行完毕 虚拟机不需要等待守护线程执行完毕 package state;public class TestDaemon {public s ...
- java多线程与线程间通信
转自(http://blog.csdn.net/jerrying0203/article/details/45563947) 本文学习并总结java多线程与线程间通信的原理和方法,内容涉及java线程 ...
- Java多线程02(线程安全、线程同步、等待唤醒机制)
Java多线程2(线程安全.线程同步.等待唤醒机制.单例设计模式) 1.线程安全 如果有多个线程在同时运行,而这些线程可能会同时运行这段代码.程序每次运行结果和单线程运行的结果是一样的,而且其他的变量 ...
- Java多线程之线程池配置合理线程数
Java多线程之线程池配置合理线程数 目录 代码查看公司服务器或阿里云是几核的 合理线程数配置之CPU密集型 合理线程数配置之IO密集型 1. 代码查看公司服务器或阿里云是几核的 要合理配置线程数首先 ...
- Java多线程之线程池的手写改造和拒绝策略
Java多线程之线程池的手写改造和拒绝策略 目录 自定义线程池的使用 四种拒绝策略代码体现 1. 自定义线程池的使用 自定义线程池(拒绝策略默认AbortPolicy) public class My ...
- Java多线程之线程池7大参数、底层工作原理、拒绝策略详解
Java多线程之线程池7大参数详解 目录 企业面试题 线程池7大参数源码 线程池7大参数详解 底层工作原理详解 线程池的4种拒绝策略理论简介 面试的坑:线程池实际中使用哪一个? 1. 企业面试题 蚂蚁 ...
- Java多线程之线程池详解
Java多线程之线程池详解 目录: 线程池使用及优势 线程池3个常用方式 线程池7大参数深入介绍 线程池底层工作原理 1. 线程池使用及优势 线程池做的工作主要是控制运行的线程的数量,处理过程中将任务 ...
- Java多线程之线程通信之生产者消费者阻塞队列版
Java多线程之线程通信之生产者消费者传统版和阻塞队列版 目录 线程通信之生产者消费者传统版 线程通信之生产者消费者阻塞队列版 1. 线程通信之生产者消费者传统版 题目: 一个初始值为零的变量,两个线 ...
- Java多线程之线程虚假唤醒
Java多线程之线程虚假唤醒 本文目录提纲 问题:两个线程对一个初始值为零的变量操作,实现一个线程加一,另一个线程减一,来十次. 问题:四个线程对一个初始值为零的变量操作,实现两个线程加一,另外两个线 ...
最新文章
- [转]C++11 随机数学习
- hibernate.hbm.xml配置文件解析
- win10家庭版远程桌面连接出现身份验证错误
- xposed hook java_[原创]Android Hook 系列教程(一) Xposed Hook 原理分析
- 【转】HashMap,ArrayMap,SparseArray源码分析及性能对比
- 如何添加评论_如何运用运镜+转场让视频更酷炫
- jQuery.extend()、jQuery.fn.extend()扩展方法具体解释
- NLP领域,哪些综述性的文章值得推荐?
- VSZ、RSS、Pss的区别和含义
- Ajax之搭建一个基本的Ajax框架(技术分析篇)
- Android TableLayout 表格布局详解
- 实现写邮箱html页面,用html写的简单的邮箱登陆界面
- jQuery each()跳出循环
- 样条插值(Spline)
- 小程序设置appId
- 机器学习kaggle案例:沃尔玛招聘 - 商店销售预测
- Thinkphp5使用ZipArchive批量打包下载图片
- 每一个圣人都有一个过去
- 计算机专利英语笔译,基于Trados2014的专利翻译实践报告-英语笔译专业论文.docx...
- 腾讯游戏深度定制 ROG游戏手机3天生高能释放
热门文章
- LabView2014的串口使用之--VISA 驱动下载安装篇
- libnet发包java语言_Linux下C语言+libnet实现ARP数据包广播
- 精彩实录 | POW'ER 2020 DEFI 创新者大会首日,DeFi创新领袖都聊了啥?
- uboot 修改启动logo
- css背景图不失真_CSS背景background图片
- ADSP-21489的开发详解:VDSP+自己编程写代码开发(8-延时算法)
- bootstrap editable 动态改变列的编辑状态
- 报表中的多维数据分析,并没有你想象的那么难!
- SpringBoot集成RedisTemplate
- 为什么地球的生物都是碳基生命?科学家:大自然环境选择的结果