java守护线程与非守护线程


两个线程的基本概念

  • 守护线程即在后台为用户提供一些基本保障的线程,例如java中的gc线程[垃圾处理机制],他会自动清理一些没有用处的变量空间,处理空间溢出等问题。守护线程会随着main函数的结束而结束。
  • 非守护线程,也成为用户线程,他是可以由用户自己定义,不会随着main函数的结束而结束,这个特性和守护线程恰恰相反。

守护线程的机制

举一个实例,当手机游览器正在下载文件的时候,如果你将游览器退出,但是那个文件还在继续下载,那个文件还在继续下载,这个下载文件线程就是守护线程。

  • 值得注意的是,当程序的所有用户线程都结束的时候,并且程序中仅仅剩下了一个守护线程,那么JVM就会退出,因为守护线程已经没有什么可以守护的了。
  • 但是需要一提的是,java中的main函数属于用户线程,并不属于守护线程!!!!
原文地址:https://www.cnblogs.com/adroitwolf/p/14309899.html