守护线程的概念是: 当一个进程里,所有的线程都是守护线程的时候,结束当前进程。是给别的线程提供服务的。
java有两种线程:“守护线程”和“用户线程”,守护线程又叫做“服务进程”、“精灵线程”、“后台线程”
守护线程一个典型的例子就是“垃圾回收器”
如果我们要将某个线程设置为守护线程,需要在调用start()之前,先调用对象的setDaemon(true),如果是false则是用户线程模式。当程序中只存在”守护线程“(也就是其他线程执行完,或者主线程执行完),JVM会总动关闭(因为没有什么好守护的)。 main()函数即主函数,是一个前台线程,前台进程是程序中必须执行完成的,而后台线程则是java中所有前台结束后结束,不管有没有完成,后台线程主要用与内存分配等方面。
其他的知识点:
1、而 jre 判断程序是否执行结束的标准是:所有的前台线程执行完毕
2、后台线程不会阻止进程的终止。属于某个进程的所有前台线程都终止后,该进程就会被终止。所有剩余的后台线程都会停止且不会完成
3、托管线程池中的线程都是后台线程,使用new Thread方式创建的线程默认都是前台线程。