守护线程的说明
Java线程可以被标记为守护线程(daemon)。守护线程与非守护线程的区别主要是它们对于Java程序退出的影响。Java程序在以下几种情况下会退出:
- Runtime.exit方法被调用
- 所有非守护线程已经结束,即使这时候还存在守护线程,Java程序也会退出
创建线程的时候,如果其父线程是守护线程,则它自动成为守护线程。如果其父线程不是守护线程,那么可以在启动该线程之前调用setDaemon设置该线程为守护线程。要注意必须在启动之前调用,否则会抛出异常:
if (isAlive()) {
throw new IllegalThreadStateException();
}
守护线程的用途
守护线程通常用于执行一些后台作业,例如在你的应用程序运行时播放背景音乐,在文字编辑器里做自动语法检查、自动保存等功能。Java的垃圾回收也是一个守护线程。守护线程的好处就是你不需要关心它的结束问题。例如你在你的应用程序运行的时候希望播放背景音乐,如果将这个播放背景音乐的线程设定为非守护线程,那么在用户请求退出的时候,你不仅要退出主线程,还要通知播放背景音乐的线程退出;如果设定为守护线程则不需要了。
Daemon threads are primarily useful in standalone Java applications and in the implementation of the Java system itself, but not in applets. Since an applet runs inside of another Java application, any daemon threads it creates will continue to live until the controlling application exits--probably not the desired effect.
翻译如下: 守护线程主要用于独立的Java应用程序和Java系统本身的实现。applet不需要使用守护线程,因为applet本身是在另一个Java应用程序里运行的,任何守护线程都会始终存活,直到控制程序退出,控制程序退出的时候,无论你创建的是守护线程还是非守护线程都会自动退出,这并不是使用守护线程想要的效果,或者说,不使用守护线程也能达到同样的效果。
分享到:
相关推荐
精灵线程(Daemon)或守护线程---马克-to-win java视频
【IT十八掌徐培成】Java基础第08天-02.多线程-join-daemon-同步.zip
安装jsvc需要的两个jar包:commons-daemon-1.2.0-bin.tar.gz,commons-daemon-1.2.0-src.tar.gz,需要的可以进我主页下载
java daemon 程序,有助于理解守护线程的概念和使用
赠送jar包:commons-daemon-1.0.13.jar; 赠送原API文档:commons-daemon-1.0.13-javadoc.jar; 赠送源代码:commons-daemon-1.0.13-sources.jar; 赠送Maven依赖信息文件:commons-daemon-1.0.13.pom; 包含翻译后...
编译tomcat所需文件,ant编译时无法获取文件,通过上传提供下载,方便使用,提供所需的下载功能,帮助学习java和tomcat
此程序能帮助你实现将命令行程序变成服务运行,比如将"java -jar xxx.jar" 放在后台执行。 ./start-stop-daemon --help start-stop-daemon 1.9.18 for Debian - small and fast C version written by Marek ...
赠送jar包:commons-daemon-1.0.13.jar; 赠送原API文档:commons-daemon-1.0.13-javadoc.jar; 赠送源代码:commons-daemon-1.0.13-sources.jar; 赠送Maven依赖信息文件:commons-daemon-1.0.13.pom; 包含翻译后...
commons-daemon-1.0.15-bin
安装jsvc需要的两个jar包:commons-daemon-1.2.0-bin.tar.gz,commons-daemon-1.2.0-src.tar.gz,需要的可以进我主页下载
commons-daemon-1.0.15-bin-windows-signed.zip windows下使用commons-daemon把java安装为windows服务
kotlin-daemon-client-new.jar
官方离线安装包,亲测可用
离线安装包,亲测可用
官方离线安装包,亲测可用。使用rpm -ivh [rpm完整包名] 进行安装
commons-daemon-native.tar.gz
官方离线安装包,亲测可用
官方离线安装包,亲测可用
官方离线安装包,亲测可用。使用rpm -ivh [rpm完整包名] 进行安装
官方离线安装包,亲测可用。使用rpm -ivh [rpm完整包名] 进行安装