Java多线程 守护线程
发布日期:2021-06-30 13:12:00 浏览次数:2 分类:技术文章

本文共 648 字,大约阅读时间需要 2 分钟。

文章目录

守护线程的作用

作用: 给用户线程提供服务(比如jvm的垃圾处理线程). 如果现在的线程都是守护线程, 那么守护线程就会和jvm一起停止工作. 因为此时没有守护的对象了.

java虚拟机只有两种情况才会结束运行:

  1. 人为的调用System.exit(0); 此种情况很少.
  2. 大部分的情况是代码执行结束了. 虚拟机才会结束运行

我们自身写的代码虽然执行完毕了 ,但是其实背后很是会有很多的守护线程的, 但是这些守护线程不会影响jvm的关闭

守护线程的三个特性

  1. 线程的类型默认是继承自父线程的.(例如 ,我们自身写的代码, 创建的线程是继承自用户线程的, 因此我们的线程是用户线程. 守护线程创建的线程, 自动的就是守护线程. )
  2. 通常守护线程都是由jvm自动启动的. 而不是由用户去启动的.
  3. 守护线程不影响jvm的退出, 对于jvm而言, 只看有没有用户线程, 不看有没有守护线程.

守护线程与普通线程整体上无区别, 都是线程. 只是唯一的区别在于守护线程不会影响jvm的退出. 而普通线程会. 用户线程是执行逻辑的. 而守护线程是服务于我们的.

守护线程面试题

  1. 守护线程与普通线程的区别 . 上面已有答案.
  2. 是否须臾给线程设置为守护线程. (设置的方法为setDaemon(boolean on) 传入true)
    不应该把自己的线程, 设置为守护线程 , 因为可能设置成守护线程后, 该线程还没有执行完代码, 但是此时系统中,只剩下守护线程了, 就把该线程给关闭了. 导致数据丢失等后果.

转载地址:https://javaweixin6.blog.csdn.net/article/details/108307675 如侵犯您的版权,请留言回复原文章的地址,我们会给您删除此文章,给您带来不便请您谅解!

上一篇:Java多线程 线程的优先级&四个线程属性的总结
下一篇:Java多线程 Thread类线程名字源码分析

发表评论

最新留言

第一次来,支持一个
[***.219.124.196]2024年05月02日 18时44分07秒