标签:jvm href net 链接 代码 关闭 是你 运行 程序代码
答:
守护线程:专门用于服务其他的线程,如果非守护线程(即用户自定义线程)都执行完毕,程序终止,那么jvm就会退出(即停止运行)——此时,连jvm都停止运行了,守护线程当然也就停止执行了。
反过来说,只要任何非守护线程还在运行,程序就不会终止。
换一种说法:如果有用户自定义线程存在的话,jvm就不会退出——此时,守护线程也不能退出,也就是它还要运行,干嘛呢,就是为了执行垃圾回收的任务。
原文链接:https://blog.csdn.net/chenyao1994/article/details/91172636 (概念)
原文链接:https://www.baidu.com/link?url=-kPFH3umtmZwszHzTY0xnV_gM-2FXNJKHfLW5h1EyZlIKE1cTBgxJ42z2biQZfY6&wd=&eqid=c5cbc82d000d4b6a000000065ea61362 (拓展和代码)
守护线程拥有自动结束自己生命周期的特性,而非守护线程不具备这个特点。
通常来说,守护线程经常被用来执行一些后台任务,但是呢,你又希望在程序退出时,或者说 JVM 退出时,线程能够自动关闭,此时,守护线程是你的首选。
应用程序里的线程,一般都是用户自定义线程。
用户也可以在应用程序代码自定义守护线程,只需要调用Thread类的设置方法设置一下即可。
只要任何非守护线程还在运行,程序就不会终止,守护线程会运行。
当 JVM 中不存在任何一个正在运行的非守护线程时,则 JVM 进程即会退出(官方解释)如果非守护线程(即用户自定义线程)都执行完毕,程序终止,守护线程也会终止。
守护线程用于又希望在程序退出时,或者说 JVM 退出时,线程能够自动关闭。
标签:jvm href net 链接 代码 关闭 是你 运行 程序代码
原文地址:https://www.cnblogs.com/ynzj123/p/12784210.html