Kaleldo

本来对博客持有一种如果别人写过那么再写就没有意义的想法,想看的时候看别人的写好的文章不就好了吗?最近明白了,写博客也是一种学习,哪怕与人雷同哪怕千篇一律,只要自己动手,有所收获就不亏。如果还能帮到其他小伙伴,那就更好。

  • 主页
  • 类别
所有文章 关于我 个人作品

Kaleldo

本来对博客持有一种如果别人写过那么再写就没有意义的想法,想看的时候看别人的写好的文章不就好了吗?最近明白了,写博客也是一种学习,哪怕与人雷同哪怕千篇一律,只要自己动手,有所收获就不亏。如果还能帮到其他小伙伴,那就更好。

  • 主页
  • 类别

Daemon线程

2019-01-28

Daemon线程

Daemon线程是一种支持型线程,因为它主要被用作程序中后台调度以及支持性工作。这
意味着,当一个Java虚拟机中不存在非Daemon线程的时候,Java虚拟机将会退出。可以通过调
用Thread.setDaemon(true)将线程设置为Daemon线程。

Daemon属性需要在启动线程之前设置,不能在启动线程之后设置。

Daemon线程被用作完成支持性工作,但是在Java虚拟机退出时Daemon线程中的finally块
并不一定会执行,示例如代码清单4-5所示。

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
public class Daemon {
public static void main(String[] args) {
Thread thread = new Thread(new DaemonRunner(), "DaemonRunner");
thread.setDaemon(true);
thread.start();
}
static class DaemonRunner implements Runnable {
@Override
public void run() {
try {
SleepUtils.second(10);
} finally {
System.out.println("DaemonThread finally run.");
}
}
}
}

运行Daemon程序,可以看到在终端或者命令提示符上没有任何输出。main线程(非
Daemon线程)在启动了线程DaemonRunner之后随着main方法执行完毕而终止,而此时Java虚拟
机中已经没有非Daemon线程,虚拟机需要退出。Java虚拟机中的所有Daemon线程都需要立即
终止,因此DaemonRunner立即终止,但是DaemonRunner中的finally块并没有执行。

在构建Daemon线程时,不能依靠finally块中的内容来确保执行关闭或清理资源
的逻辑。

  • 多线程
  • 多线程基础
  • 多线程

扫一扫,分享到微信

微信分享二维码
启动和终止线程
线程的状态
  1. 1. Daemon线程
© 2020 Kaleldo
Hexo Theme Yilia by aha
  • 所有文章
  • 关于我
  • 个人作品

tag:

  • 多线程
  • 多线程基础
  • springBoot
  • 过滤器和拦截器
  • vue
  • Java中的锁
  • Lock接口
  • 容器源码分析2
  • 队列同步器
  • 个人作品
  • iwiilsay后台前端
  • iwiilsay小程序
  • 数据结构与算法
  • 仿土巴兔小程序
  • 模运算优化
  • Java性能优化
  • Linux
  • spring 使用属性文件
  • Java基础
  • JSON
  • 错误解决
  • java提高
  • lambda
  • layui
  • 递归处理返回数据
  • AJAX
  • 文件上传
  • 事务
  • Mybatis
  • sql打印拦截器
  • 集成Swagger在线调试
  • 轻松搞定数据验证(一)
  • 轻松搞定数据验证(二)
  • 项目总结
  • 项目分析
  • mybatis
  • git
  • docker
  • linux
  • 虚拟机
  • 接口文档
  • yapi
  • Docker
  • IDEA
  • js
  • spring4
  • ActiveMQ
  • 延时队列
  • MAVEN
  • IM
  • 腾讯云
  • maven
  • Linux常用命令
  • Mysql常用命令
  • hexo
  • 开源项目
  • Java多线程
  • Java序列化
  • VUE
  • 网络基础
  • 前端
  • 安全
  • 平时积累
  • 进阶
  • 启动和终止线程
  • 线程应用实例
  • 线程间通信
  • 微课堂
  • 设计模式
  • SpringDataJpa
  • 使用Spring Cache集成Redis
  • 通用Mapper与分页插件的集成
  • 轻松搞定全局异常
  • 容器

    缺失模块。
    1、请确保node版本大于6.2
    2、在博客根目录(注意不是yilia根目录)执行以下命令:
    npm i hexo-generator-json-content --save

    3、在根目录_config.yml里添加配置:

      jsonContent:
        meta: false
        pages: false
        posts:
          title: true
          date: true
          path: true
          text: false
          raw: false
          content: false
          slug: false
          updated: false
          comments: false
          link: false
          permalink: false
          excerpt: false
          categories: false
          tags: true
    

  • SpringCloud学习过程
  • SpringBoot日常总结
  • 码云地址
  • 仿土巴兔小程序
  • iwiilsay
  • iwiilsay后台前端(基于vue,vue-router,element-ui)
  • 微课堂
  • to8to后台前端
  • to8toJavaDev(java后台代码)
  • 京西商城
  • java多线程知识冲顶(基于thinkphp5,包含微信小程序,后台)
  • mybatis-puls生成工具
Kaleldo

热爱生活

本来对博客持有一种如果别人写过那么再写就没有意义的想法,想看的时候看别人的写好的文章不就好了吗?最近明白了,写博客也是一种学习,哪怕与人雷同哪怕千篇一律,只要自己动手,有所收获就不亏。如果还能帮到其他小伙伴,那就更好!
年轻无为,卖马为生。