首页 > 编程语言 > 详细

多线程 - 守护线程Daemon是什么

时间:2020-03-08 12:18:07      阅读:68      评论:0      收藏:0      [点我收藏+]

Java线程分为用户线程和守护线程。

守护线程是程序运行的时候在后台提供一种通用服务的线程。这意味着,当一个 Java 虚拟机中不存在非 Daemon 线程的时候, Java 虚拟机也会同时停掉所有守护线程,然后退出。

Java中把线程设置为守护线程的方法:在 start 线程之前调用线程的 setDaemon(true) 方法。

注意:

  1. setDaemon(true) 必须在 start() 之前设置,否则会抛出IllegalThreadStateException异常,该线程仍默认为用户线程,继续执行
  2. Daemon 线程被用作完成支持性工作,但是在 Java 虚拟机退出时, Daemon 线程中的 finally 块并不一定会执行在构建 Daemon 线程时,不能依靠 finally 块中 的内容来确保执行关闭或清理资源的逻辑
  3. 守护线程创建的线程也是守护线程
  4. 守护线程不应该访问、写入持久化资源,如文件、数据库,因为它会在任何时间被停止,导致资源未释放、数据写入中断等问题

 

多线程 - 守护线程Daemon是什么

原文:https://www.cnblogs.com/frankcui/p/12441626.html

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!