java 后台线程自己断掉一般是啥由原因引起的?

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了java 后台线程自己断掉一般是啥由原因引起的?相关的知识,希望对你有一定的参考价值。

请高手帮忙解答

1.所谓守护线程就是运行在程序后台的线程,程序的主线程Main(比方java程序一开始启动时创建的那个线程)不会是守护线程.

2.Daemon thread在Java里面的定义是,如果虚拟机中只有Daemon thread 在运行,则虚拟机退出。
虚拟机中可能会同时有很多个线程在运行,只有当所有的非守护线程都结束的时候,虚拟机的进程才会结束,不管在运行的线程是不是main()线程。

3.Main主线程结束了(Non-daemon thread),如果此时正在运行的其他threads是daemon threads,JVM会使得这个threads停止,JVM也停下.
如果此时正在运行的其他threads有Non-daemon threads,那么必须等所有的Non daemon线程结束了,JVM才会停下来.

4.总之,必须等所有的Non-daemon线程都运行结束了,只剩下daemon的时候,JVM才会停下来,注意Main主程序是Non-daemon线程.

5.默认产生的线程全部是Non-daemon线程.
参考技术A 当所有的前台线程结束后,java虚拟机会自动结束所有的后台线程 参考技术B 异常没有捕获

以上是关于java 后台线程自己断掉一般是啥由原因引起的?的主要内容,如果未能解决你的问题,请参考以下文章

DNS配置错误 无法上网是啥原因?我各种DNS都试了可就是没办法上网 怎

电脑老是卡屏 死机是啥原因啊??

启动tomcat一闪而过,出现这些是啥原因

java多线程,对象锁是啥概念?

LINUX下报仅有的JAVA错误,能判断是啥原因引起的吗

vue前端收到的数据与后台发送的数据不一致是啥原因?