相关疑难解决方法(0)

默认线程,如DestroyJavaVM,Reference Handler,Signal Dispatcher

在我自己的剖析器上工作,我想解释一下我所看到的.即使在最简单的程序中,也会出现一些默认线程:

  • DestroyJavaVM
  • 信号调度员
  • 终结
  • 参考处理程序

虽然他们的名字非常自我记录,但我希望获得更多信息.似乎这些线程没有记录,有人知道挖掘这些信息的来源,甚至知道这些线程到底做了什么吗?

java multithreading jvm

33
推荐指数
1
解决办法
1万
查看次数

为什么是锯齿形图?

当我使用NetBeans运行下面提到的代码时,分配的堆大小图类似于锯齿形状.我附加了JVisualVM的屏幕截图,它显示了锯齿形状的堆分配图.该程序是一个简单的无限循环打印"Hello,World!" 进入控制台.

public class HelloWorld {
    public static void main(String a[]){
        while(true) {
            System.out.println("Hello, World!");
        }
    }
}
Run Code Online (Sandbox Code Playgroud)

在此输入图像描述 任何人都可以解释使用堆图形状背后的原因吗?

PS:即使我在不​​使用NetBeans的情况下运行它也会发生这种情况,因此它很可能与NetBeans无关......

java jvm memory-management heap-memory jvisualvm

17
推荐指数
2
解决办法
1万
查看次数

System.exit(0)vs JFrame.EXIT_ON_CLOSE

两者之间有什么区别吗?我正在阅读一篇关于你应该总是使用的文章(http://www.javalobby.org/java/forums/t17933)

System.exit(0);
Run Code Online (Sandbox Code Playgroud)

目前我用

JFrame.setDefaultCloseOperation( JFrame.EXIT_ON_CLOSE );
Run Code Online (Sandbox Code Playgroud)

文章说,即使对于Java Swing应用程序,您也应该添加一个监听器WindowAdapterSystem.exit()在其方法中调用windowClosing(WindowEvent e).

有什么区别吗?一种方法比另一种更好吗?

java swing exit jframe

10
推荐指数
1
解决办法
2万
查看次数

当Java应用程序开始执行时,这些线程是什么?

我创建了一个简单的Java应用程序,它有一个JFrame和几个JButton.当我尝试使用JVMTI检查java应用程序时,我发现虽然我没有创建任何显式线程但是它们中有很多产生.

我可以找到以下主题:

  • DestroyJavaVM
  • AWT-EventQueue的 - 0
  • AWT关断
  • AWT-XAWT-守护程序线程
  • Java2D Disposer-守护程序线程
  • Thread-0-守护程序线程[由JVMTI代理创建]
  • Signal Dispatcher-守护程序线程
  • 敲定 - 守护程序线程
  • 参考处理程序 - 守护程序线程

他们中的大多数都处于Runnable状态.有人能告诉我这些线程的功能吗?

java multithreading jvmti

5
推荐指数
1
解决办法
1068
查看次数