java 守护线程_JAVA_编程开发_程序员俱乐部

中国优秀的程序员网站程序员频道CXYCLUB技术地图
热搜:
更多>>
 
您所在的位置: 程序员俱乐部 > 编程开发 > JAVA > java 守护线程

java 守护线程

 2011/10/21 8:18:32  printfabcd  http://printfabcd.iteye.com  我要评论(0)
  • 摘要:很多人都迷糊守护线程和正常的线程有什么区别,我只想说一下我的理解。首先代码上的区别:java里面创建线程有两种方式,一个是实现Runnable接口,另一个就是集成Thread,创建守护线程,就是通过调用Thread的setDaemon(true);,调用start之后,这个线程就是守护线程啦,代码上就这么点区别。不解释了,大家应该都明白了。另外有一点要提的就是,你创建的线程,里面还是可以创建子线程的,如果父线程是守护线程的话,那么子线程也是守护线程,反之正常的线程也是一样的。运行之后的区别
  • 标签: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. 希望大家可以留言讨论,学习更多的知识

?

发表评论
用户名: 匿名