守护线程是为其他线程的运行提供便利的线程。守护线程不会阻止程序的终止。
Java的垃圾收集机制的某些实现就使用了守护线程。
非守护线程包括常规的用户线程或诸如用于处理GUI事件的事件调度线程。
程序可以包含守护线程和非守护线程。
程序只有守护线程时,该程序便可以结束运行。
如果要使一个线程成为守护线程,则必须在调用它的start方法之前进行设置(通过以true作为参数调用线程的setDaemon方法,可以将该线程定义为一个守护线程),否则会抛出IllegalThreadStateException异常。如果线程是守护线程,则isDaemon方法返回真。
注:
- 1、如果在线程已经启动后,再试图使该线程成为守护线程,则会导致IllegalThreadStateException异常
- 2、事件调度线程是一个无穷循环的线程,而不是守护线程。因而,在基于窗口的应用程序调用System类的exit方法之前,事件调度线程不会终止。
- 3、不能将关键任务分配给守护线程(如:如写数据文件,计算逻辑等)。这些任务将会在事先没有警告的情况下终止,这可能导致不能正确地完成它们
守护线程和非守护线程的关键不同点:
守护线程不会阻止程序的终止(或称为:不会阻止JVM的退出) ,当所有非守护线程都已经结束,则JVM就可以退出了。
而非守护线程会阻止JVM的退出,必须所有非守护线程都执行完了才行,除非是强制推出。
典型的守护线程例子是JVM中的系统资源自动回收线程,它始终在低级别的状态中运行,用于实时监控和管理系统中的可回收资源。
分享到:
相关推荐
java daemon 程序,有助于理解守护线程的概念和使用
ASPNET中实现在线用户检测(使用后台守护线程)ASPNET中实现在线用户检测(使用后台守护线程)ASPNET中实现在线用户检测(使用后台守护线程)ASPNET中实现在线用户检测(使用后台守护线程)
精灵线程(Daemon)或守护线程---马克-to-win java视频
很多人对java的线程不是很了解,甚至连守护线程都么有听过,其实很简单,守护线程就是普通的线程,区别再于,他就是类似一个秘书一样,记录着所有的非守护线程的信息等等,守护线程,是指为工作线程做相关统计、汇总...
linux c++ 守护线程,判断程序是否运行,不存在就启动
主要介绍了浅谈java的守护线程与非守护线程,小编觉得挺不错的,现在分享给大家,也给大家做个参考。一起跟随小编过来看看吧
在J2EE开发过程中经常由于内存溢出等多方面原因,导致tomcat服务器软件自动停止服务,从而影响了Web服务,本代码采用VB开发,主要是监控tomcat是否被关闭,保证tomcat的正常运行!
FreeRTOS线程守护看门狗 主要功能,建立复位定时器,所有加入守护的线程都必需在指定时间内发送心跳信号,超过时间定时器回调函数不会调用清空看门狗的函数 使用教程:...
ASPNET中实现在线用户检测(使用后台守护线程).rar
java 变形金刚中的守护神(守护线程) java 变形金刚中的守护神(守护线程) java 变形金刚中的守护神(守护线程)
在Java中有两类线程:User Thread(用户线程)、Daemon Thread(守护线程) 作用 Daemon的作用是为其他线程的运行提供便利服务,守护线程典型的应用是 GC (垃圾回收器),它是一个很称职的守护者。 区别 ...
Java 的守护线程 Java 守护线程,看这篇文章就对了!Java 的守护线程什么是Java的守护线程( Daemon Thread )?守护线程的区别?守护线程的作用?守护线程如何创建?守护线程如何判断?守护线程使用的注意事项总结 ...
线程守护实例 远程线程 木马常用技术 VC6.0 CreateRemoteThread
主要介绍了java守护线程与非守护线程,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
用spring、hibernate等框架实现守护线程系统,对配置的线程进行监测,发邮件通知。
本篇文章主要介绍了python实现守护进程、守护线程、守护非守护并行,详细的介绍了守护子进程、非守护子进程并存,守护子线程非守护子进程并存的方法,具有一定的参考价值,感兴趣的小伙伴们可以参考一下
进程线程补充
主要介绍了Java线程之守护线程(Daemon)用法,较为详细的分析了守护线程的功能与实现技巧,具有一定参考借鉴价值,需要的朋友可以参考下
主要介绍了Java守护线程与用户线程,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
什么是java的守护线程.pdf