zoukankan      html  css  js  c++  java
  • 37 守护线程是什么?

    守护线程是什么?

    答:

    概念:

    • 守护线程:专门用于服务其他的线程,如果非守护线程(即用户自定义线程)都执行完毕,程序终止,那么jvm就会退出(即停止运行)——此时,连jvm都停止运行了,守护线程当然也就停止执行了。

    • 反过来说,只要任何非守护线程还在运行,程序就不会终止。

    • 换一种说法:如果有用户自定义线程存在的话,jvm就不会退出——此时,守护线程也不能退出,也就是它还要运行,干嘛呢,就是为了执行垃圾回收的任务。

    原文链接:https://blog.csdn.net/chenyao1994/article/details/91172636 (概念)
    原文链接:https://www.baidu.com/link?url=-kPFH3umtmZwszHzTY0xnV_gM-2FXNJKHfLW5h1EyZlIKE1cTBgxJ42z2biQZfY6&wd=&eqid=c5cbc82d000d4b6a000000065ea61362 (拓展和代码)

    拓展:

    • 守护线程拥有自动结束自己生命周期的特性,而非守护线程不具备这个特点。

    • 通常来说,守护线程经常被用来执行一些后台任务,但是呢,你又希望在程序退出时,或者说 JVM 退出时,线程能够自动关闭,此时,守护线程是你的首选。

    • 在 Java 中垃圾回收线程就是特殊的守护线程。

    • 其他的线程只有一种,那就是用户线程。(应用程序里的自定义线程)

    • 应用程序里的线程,一般都是用户自定义线程。

    • 用户也可以在应用程序代码自定义守护线程,只需要调用Thread类的设置方法设置一下即可。

    总结:

    • 只要任何非守护线程还在运行,程序就不会终止,守护线程会运行。

    • 当 JVM 中不存在任何一个正在运行的非守护线程时,则 JVM 进程即会退出(官方解释)如果非守护线程(即用户自定义线程)都执行完毕,程序终止,守护线程也会终止。

    • 守护线程用于又希望在程序退出时,或者说 JVM 退出时,线程能够自动关闭。

  • 相关阅读:
    5.1、字符串插入
    2.2、部署 Discuz!
    7.1.5、测试数组
    4.2、php 注释
    5.2、操作符
    2.3、初始化 Discuz!
    5.3、控制结构
    gradle 又一项目构建工具
    1.1、概述
    7.1.8、通过追加数组的方式创建数组
  • 原文地址:https://www.cnblogs.com/ynzj123/p/12784210.html
Copyright © 2011-2022 走看看