我有一个简单的 java
hello world 程序,带有 sleep
Java 代码:
public class Main {
public static void main(String[] args) throws InterruptedException {
Thread.sleep(100000l);
}
}
使用javac编译
javac Main.java
运行使用
java Main
现在,如果我在 jvisualvm
中看到这 11 个线程。
为什么要启动 RMI 线程?
我如何启动一个只有基本线程的 jvm?
我为什么要这样做是因为受到 limit.conf
中的 nproc
限制的约束,并且想同时运行 maximun jvm。这些 jvm 也很短暂。
我正在使用 Oracle jdk 7
最佳答案
如果我告诉您这些线程对您来说没有任何意义,您会相信我吗?
它们要么是 VisualVM 用来与您的程序对话的基础结构的一部分,要么是 JVM 本身的一部分。它们都不能安全消除,也不应该;他们正在执行 VM 后台任务,因此您不必担心。
基本上,不用担心,它们在比 hello-world 大得多的程序中提供的开销是没有意义的。
如果您想知道它们是什么,引用管理器
只是管理当前内存中的对象,finalizer
是垃圾的一部分集电极。简而言之,您不应该担心的事情。
关于java - 以尽可能少的线程初始化 JVM,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31764567/