一、线程
JAVA线程分为即实线程与守护线程,守护线程是优先级低,存活与否不影响JVM的退出的线程,实现守护线程的方法是在线程start()之前setDaemon(true),否则会抛出一个IllegalThreadStateException异常。不能操作文件、数据库等资源,避免主线程关闭而未能关闭守护线程的资源,并且它会在任何时候甚至在一个操作的中间发生中断。
二、优点及使用场景
在主线程关闭后无需手动关闭守护线程,因为会自动关闭,避免了麻烦,Java垃圾回收线程就是一个典型的守护线程,简单粗暴的可以理解为所有为线程服务而不涉及资源的线程都能设置为守护线程。
作者:梦里藍天
来源:CSDN
原文:https://blog.csdn.net/ren365880/article/details/80289532
举个例子:

public class Demo {public static void main(String[] args) {Thread thread = new Thread(() -> {while (true) {try {TimeUnit.SECONDS.sleep(1);} catch (InterruptedException e) {e.printStackTrace();}System.out.println("----睡眠一秒-----");}});//默认为false,设置为false代表非守护线程,true为守护线程,守护线程在主方法结束时候结束
//        thread.setDaemon(true);thread.start();try {TimeUnit.SECONDS.sleep(3);} catch (InterruptedException e) {e.printStackTrace();}System.out.println("主线程over");}
}

thread.setDaemon(false);这个方法默认为false,当为false情况下,输出:

主方法执行完成并不会结束.
thread.setDaemon(true);当为守护线程的时候,主方法结束,守护线程就会结束.

很好理解,具体使用的话,要自己看看了

setDaemon详解相关推荐

  1. Thread.setDaemon详解

    java中线程分为两种类型:用户线程和守护线程.通过Thread.setDaemon(false)设置为用户线程:通过Thread.setDaemon(true)设置为守护线程.如果不设置次属性,默认 ...

  2. setDaemon实例详解

    Java线程区别 JAVA线程分为即实线程与守护线程,守护线程是优先级低,存活与否不影响JVM的退出的线程,实现守护线程的方法是在线程start()之前setDaemon(true),否则会抛出一个I ...

  3. python queue 查询是否在队列中_python队列Queue的详解

    Queue Queue是python标准库中的线程安全的队列(FIFO)实现,提供了一个适用于多线程编程的先进先出的数据结构,即队列,用来在生产者和消费者线程之间的信息传递 基本FIFO队列 clas ...

  4. Java多线程详解(二)

    评论区留下邮箱可获得<Java多线程设计模式详解> 转载请指明来源 1)后台线程 后台线程是为其他线程服务的一种线程,像JVM的垃圾回收线程就是一种后台线程.后台线程总是等到非后台线程死亡 ...

  5. python可以开多少线程_python多线程详解

    python多线程详解 一.线程介绍 什么是线程 线程(Thread)也叫轻量级进程,是操作系统能够进行运算调度的最小单位,它被包涵在进程之中,是进程中的实际运作单位.线程自己不拥有系统资源,只拥有一 ...

  6. python队列只能一个个读取吗_python队列Queue的详解

    Queue Queue是python标准库中的线程安全的队列(FIFO)实现,提供了一个适用于多线程编程的先进先出的数据结构,即队列,用来在生产者和消费者线程之间的信息传递 基本FIFO队列 clas ...

  7. java多线程教程_java 基础教程之多线程详解及简单实例

    java 多线程详解 在这篇文章里,我们关注多线程.多线程是一个复杂的话题,包含了很多内容,这篇文章主要关注线程的基本属性.如何创建线程.线程的状态切换以及线程通信. 线程是操作系统运行的基本单位,它 ...

  8. java守护线程与用户线程_详解Java线程-守护线程与用户线程

    干java 开发这么多年, 之前一直没留意java 进程还区分守护进程和用户进程.守护进程这个概念最早还是在linux系统中接触的,直到近期使用java开发心跳检测功能时,使用Timer时才发现原来j ...

  9. python 线程安全的数据类型_详解python多线程、锁、event事件机制的简单使用

    详解python多线程.锁.event事件机制的简单使用 发布时间:2020-09-25 02:04:12 来源:脚本之家 阅读:117 作者:君惜 线程和进程 1.线程共享创建它的进程的地址空间,进 ...

最新文章

  1. 常见Web技术之间的关系,你了解多少?
  2. 通讯录javafx和mysql_用javafx实现通讯录
  3. discuz php如何开发,Discuzx2开发标准流程
  4. 电脑上如何安装CAD看图软件及dwg图纸的打开?
  5. java:退出功能_Java 8:功能VS传统
  6. javascript表单处理相关的知识总结(一)
  7. iar环境下c语言编程,c语言_源代码-iar环境配置.pdf
  8. iis 运行时错误_新手必看,17个常见的Python运行时错误
  9. Apache PDFBox 1.8.1 发布
  10. ATMEGA328P引脚定义图
  11. FileNet入门学习
  12. 一键删除PPT页面内的动画or页面的切换效果总结
  13. 如何用公式计算计算机的及格率,及格率和优秀率公式 在excel中如何计算及...
  14. 笔试题算法系列(五)百度2017买帽子
  15. clamav的unrar解压模块加载
  16. 任正非评华为HR胡玲事件,元芳你怎么看?
  17. 阿里云大数据组件选型
  18. 河南专升本公共英语语法考点分析---动词时态
  19. 基于java网盘搜索的设计与实现
  20. 台式计算机如何判断电源损坏,如何判断电脑电源供电不足?

热门文章

  1. 面试题:js怎么判断是否是数组?
  2. echart通过ajax获取数据
  3. Matlab实现鱼群算法(附上完整仿真源码)
  4. Keystone Fernet tokens
  5. guava排序器Ordering
  6. table 缩小行间距_table中设置tr行间距详解
  7. 基尼系数(Gini Impurity)的理解和计算
  8. 【扭矩知识】螺栓扭矩专业术语及检测方法
  9. ⭐算法入门⭐《模拟》中等01 —— LeetCode 8. 字符串转换整数
  10. 【F28003x】 ADC模块