垃圾收集器是一个守护进程(后台)线程吗?
感谢。
答案 0 :(得分:6)
我将假设是,垃圾收集器线程是一个守护程序线程。守护程序线程是一个低优先级的线程,它在后台间歇运行,执行垃圾收集操作或对java运行时系统的其他请求。
答案 1 :(得分:2)
至少从java.lang.Thread
角度来看,这不是一个主题。
答案 2 :(得分:0)
是:http://www.javaperspective.com/daemon-threads.html: (守护程序线程被视为在后台运行的线程,它们通常用作用户线程的服务提供者。例如,Java垃圾收集器是守护程序线程)
答案 3 :(得分:0)
在jdk 1.8上,以下线程用
列出ThreadMXBean mxbean = ManagementFactory.getThreadMXBean();
for(long id:mxbean.getAllThreadIds())
System.out.println(mxbean.getThreadInfo(id));
输出-
没有GC线程。可以肯定地说垃圾收集过程是本地的。
答案 4 :(得分:-1)
守护程序线程也是一个即使在JVM退出后仍继续运行的线程。来自Oracle文档 当Java虚拟机启动时,通常会有一个非守护程序线程(通常调用某个指定类的名为main的方法)。 Java虚拟机继续执行线程,直到发生以下任一情况: •已调用类Runtime的exit方法,并且安全管理器已允许执行退出操作。 •所有非守护程序线程的线程都已死亡,方法是从调用run方法返回,或者抛出一个超出run方法传播的异常。
因此,如果GC是守护程序线程,它应该是由java运行时生成的本机线程,但可以在JVM退出后继续运行