您当前的位置: 首页 >  Java

java持续实践

暂无认证

  • 0浏览

    0关注

    746博文

    0收益

  • 0浏览

    0点赞

    0打赏

    0留言

私信
关注
热门博文

Java多线程 守护线程

java持续实践 发布时间:2020-08-30 16:35:23 ,浏览量:0

文章目录
      • 守护线程的作用
      • 守护线程的三个特性
      • 守护线程面试题

守护线程的作用

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

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

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

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

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

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

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

微信扫码登录

0.0377s