java 守护线程

很多人都迷糊守护线程和正常的线程有什么区别,我只想说一下我的理解。


首先代码上的区别:


    java里面创建线程有两种方式,一个是实现Runnable接口,另一个就是集成Thread,创建守护线程,就是通过调用

Thread的setDaemon(true);,调用start之后,这个线程就是守护线程啦,代码上就这么点区别。不解释了,大家应

该都明白了。

    另外有一点要提的就是,你创建的线程,里面还是可以创建子线程的,如果父线程是守护线程的话,那么子线程也是守护线程,反之正常的线程也是一样的。


运行之后的区别(thread调用start之后):

    执行之后,说白了,区别就是,你的程序执行完了(什么叫完了,就是主线程执行结束了),守护线程不管有没有执行完,都会结束退出。正常的线程则会等到自己执行完之后才退出。这样说大家没什么感觉。那下面先说点其他的:

 

java 虚拟机什么时候停止退出:

 

1.调用了 Runtime 类的 exit 方法,并且安全管理器允许退出操作发生。
2.非守护线程的所有线程都已停止运行,无论是通过从对 run 方法的调用中返回,还是通过抛出一个传播到 run 方法之外的异常。 
 

第一条咱么不考虑了,强制退出那没办反,是线程就得结束直接退出,第二条大家有没有想到什么,对,说白了就是所有的正常线程执行完了,jvm就可以停止退出了,换句话说,就是剩下的所有线程都是守护线程的时候jvm就可以退出了。ok,再简单点说就是守护线程的生命周期不会比JVM还长,正常线程可以。剩下的大家自己去理解吧。

这周刚开始写blog目的很简单:

 

 

  1. 分享知识
  2. 记录自己学习的知识
  3. 希望大家可以留言讨论,学习更多的知识

 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值