四、守护线程 deamon
四、守护线程 deamon
- 线程分为
User Thread(用户线程)
和Daemon Thread(守护线程)
- 虚拟机必须确保
用户线程
执行完毕- 虚拟机不用等待
守护线程执
行完毕- 如:后台记录操作日志、监控內存、垃圾回收等
- 操作
- 通过
thread.setDaemon(true)
将线程转换为守护线程,这个方法必须在thread.start()
之前进行调用
1、守护线程简介(摘自)
一个比较通俗的解释:任何一个守护线程都是整个JVM中所有非守护线程的保姆
2、需要注意的点
- 守护线程的优先级比较低
- 守护线程要注意考虑关机动作
- 守护线程应该永远不去访问固有资源,比如说文件或者数据库,因为它会在任何时候甚至一个操作的中间发生中断
- 不要给守护线程分担读写逻辑或者计算逻辑,因为无法确定守护线程是否已经完成了工作,但是只要User退出守护线程也会立马结束,对于计算机程序来说这样的程序可能多次运行结果不一样,很显然这对于程序来说是毁灭性的
3、CODE
package mii.thread.demo12守护线程;
public class TestDeamon02 {public static void main(String[] args) {// 守护线程Thread deamonThread = new Thread(()->{for (;;){System.out.println(Thread.currentThread().getName() + "__在幕后默默守护着...");try {Thread.sleep(100);} catch (InterruptedException e) {e.printStackTrace();}}}, "守护线程");// 用户线程Thread userThread = new Thread(()->{int age = 0;while (age < 100) {age++;System.out.println(Thread.currentThread().getName() + "__已经" + age + "岁了,正在努力奋斗!");try {Thread.sleep(100);} catch (InterruptedException e) {e.printStackTrace();}}System.out.println(Thread.currentThread().getName() + "__挂了!");}, "小明");deamonThread.setDaemon(true); // 默认falsedeamonThread.start();userThread.start();}
}
4、Result
四、守护线程 deamon相关推荐
- 多线程----守护线程---Deamon
public final void setDaemon(boolean on) 守护线程(后台线程) setDaemon(boolean on):将该线程标记为守护线程或者用户线程.当主线程结束,守 ...
- 守护线程与线程阻塞的四种情况
守护线程 Java中有两类线程:User Thread(用户线程).Daemon Thread(守护线程) 用户线程即运行在前台的线程,而守护线程是运行在后台的线程. 守护线程作用是为其他前台线程的 ...
- Java并发编程(4):守护线程与线程阻塞的四种情况
守护线程 Java中有两类线程:User Thread(用户线程).Daemon Thread(守护线程) 用户线程即运行在前台的线程,而守护线程是运行在后台的线程. 守护线程作用是为其他前台线程的运 ...
- 学习java的第四十天,线程的优先级、守护线程、线程同步机制、死锁
一.线程的优先级(priority) Java提供一个线程调度器来监控程序中启动后进入就绪状态的所有线程,线程调度器按照优先级决定应该调度哪个线程来执行. 线程的优先级用数字表示,范围1~10 Thr ...
- 并发编程之多线程基础-守护线程与非守护线程(四)
守护线程概念: 只要当前JVM实例中尚存在任何一个非守护线程没有结束, 守护线程就全部工作; 只有当最后一个非守护线程结 束时, 守护线程随着 JVM 一同结束工作. 守护线程最典型的应用就是 GC ...
- python开发线程:线程守护线程全局解释器锁
From: https://www.cnblogs.com/jokerbj/p/7460260.html 一 threading模块介绍 multiprocess模块的完全模仿了threading模块 ...
- JAVE SE 学习day_09:sleep线程阻塞方法、守护线程、join协调线程同步方法、synchronized关键字解决多线程并发安全问题
一.sleep线程阻塞方法 static void sleep(long ms) Thread提供的静态方法sleep可以让运行该方法的线程阻塞指定毫秒,超时后线程会自动回到RUNNABLE状态,等待 ...
- Python 守护线程
Python 守护线程 如果你设置一个线程为守护线程,,就表示你在说这个线程是不重要的,在进程退出的时候,不用等待这个线程退出. 如果你的主线程在退出的时候,不用等待那些子线程完成,那就设置这些线程 ...
- 线程的创建 验证线程之间共享数据 守护线程 线程进程效率对比 锁 死锁 递归锁...
线程(from threading import Thread):CPU调度的最小单位 线程的两种创建方式:方式一: 1 from threading import Thread 2 def f1(i ...
- Java线程之守护线程(Daemon) .
http://blog.csdn.net/mq612/article/details/1520571 守护线程(Daemon) Java有两种Thread:"守护线程Daemon" ...
最新文章
- python回归取残差_如何用sklearn拟合线性回归后的残差方差
- linux vim 插件管理,linux: vim插件管理
- 揭开腾讯IDC节能环保黑科技
- 4/100. Maximum Depth of Binary Tree
- java 文件上传至oracle blob字段 实现
- linux slub分配器浅析
- c#中的socket(tcp)
- FPGA存储器DDR5简介
- mysql ansi unicode_Ansi 与 Unicode 字符串类型的互相转换
- btsync多客户端同步的设置
- spring boot shiro视频
- 黑苹果hidp显示不清楚_bigsur 黑苹果开启HIDPI失败解决方法
- : error: control reaches end of non-void function [-Werror=return-type]
- LiveMedia视频平台与第三方国标平台级联对接异常断流
- 学完教程,不知道接下去从哪里开始做自己的第一个APP,怎么办?酷课堂iOS交流群问答(201902期)
- 什么是DirecTV,现在它可以代替您的有线电视订阅吗?
- 浅谈数据治理(什么是数据治理)
- 中式风格装修,彰显东方迷人的魅力
- ARMv8 Cortex-a 编程向导手册学习_2.ARMv8-A 寄存器
- 服务熔断 Hystrix
热门文章
- 特殊符号大全(建议收藏_复制着用_数学符号最下面)
- 成绩录取系统c语言,一个学生成绩管系统C语言源代码.doc
- 综合布线双绞线的线序标准568A与568B
- Docker 搭建 YApi 可视化接口管理平台
- ht for web(图扑)加载模型
- 联通4g满格但是网速慢_联通4g网络慢是什么原因 联通4g满格但是网速慢
- oeasy教您玩转python - 003 - # - 继续运行
- 模拟网络丢包的linux,简述Linux模拟丢包
- java setproperty 未生效_Java System类setProperty()方法及示例
- LOJ#6070. 「2017 山东一轮集训 Day4」基因 解题报告