初始化JVM的可能性最小

我有一个简单的java hello世界程序与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.confnproc限制的约束,并且想同时运行limit.conf jvm。 这些jvm也是短暂的。

我正在使用oracle jdk 7

在这里输入图像描述

如果我告诉过你,你会相信我吗?

它们都是VisualVM用来与程序交互的基础架构的一部分,或者是JVM本身的一部分。 他们中的任何一个都不能被安全的消除, 他们正在做虚拟机后台任务,所以你不用担心。

基本上,不用担心,他们在节目远远大于一个问候世界的开销是没有意义的。

如果你对它们是多么好奇,那么reference manager只是简单地管理当前在内存中的对象,而finalizer是垃圾收集器的一部分。 总之,你不应该担心的事情。

请参阅有没有办法在Java应用程序中完全禁用RMI?

除非您使用RMI,否则您的JVM将不会启动RMI线程。 然而,“短命的”JVM可能并不是一个可以很好地工作的思想,不论是否有RMI线程的开销

仅当您通过VisualVM,JConsole或类似工具连接到JVM时,才会按需启动RMI线程。 至于其他线程,还有另一个答案如何减少他们的数量。