守护线程与非守护线程
JVM中存在两种线程,用户线程和守候线程。
所谓的守护线程,是指用户线程在运行的时候后台提供的一种通用服务的线程,比如用于垃圾回收的垃圾回收线程。
当一个线程由守护线程创建的时候它也是守护线程,当JVM退出的时候,剩余的线程直接被禁用,finally块也不会使用,栈信息也不会退出,由于这个原因,守护线程谨慎使用,尤其是在线程中使用到IO的时候。
如何设置一个线程为守护线程?
通过setDaemon(true/false)设置一个线程是否为守护线程。
如何判断一个线程是否为守护线程?
public boolean isDaemon()?这个方法用来判断线程是否为守护线程
注意点
- JVM在退出之前不会等待任意的daemon退出
- 守护线程在退出的时候,finally块不会被调用