启动Java程序时JVM中的线程
来源:互联网 发布:人人会计软件 编辑:程序博客网 时间:2024/06/05 15:54
今天用 Eclipse Memory Analyzer 分析一个Heap OutOfMemoryError,意外发现 除了 main线程外,还有其他四个线程,如图
(1) main
无需赘述,程序主线程,Eclipse Debug时也会看到
(2) Signal Dispatcher
处理操作系统底层信号
参考:http://www.ibm.com/developerworks/java/library/i-signalhandling/
(3) Attach Listener
JVM中提供了一个供外界访问JVM内部情况的接口,在第一次访问的时候创建这个现成。
Eclipse需要用到,实际上,可能,大概,Eclipse就是以此为基础的
不知道如果不通过Eclipse运行此程序,Attach Listener还会不会创建
参考:http://openjdk.java.net/groups/hotspot/docs/Serviceability.html#battach
(4) Reference Handler
java.lang.ref.Reference 中启动,demaon线程,不停检查reference的pending-List是否有值,如果有,把list里的reference enqueue
(5) Finalizer
java.lang.ref.Finalizer 中启动,demaon线程,不停检查ReferenceQueue中是否有值,如果有,finalize之
======================================================================================
不过,通过 任务管理器和pslist却发现进程中有10个线程:
不知其他5个是什么。。。
=======================2012-06-02=======================
通过jvisualvm可清晰地看出这十个线程是什么。
测试程序:
// user jvisualvmpublic class JVMThreadsCount {public static void main(String[] args) throws InterruptedException {while (true) {Thread.sleep(1000);}}}
通过jvisualvm的线程观察如下:
可以看出,除了上文所述之5个线程,另外5个线程分属于JMX与RMI
- 启动Java程序时JVM中的线程
- System类和JAVA程序启动是JVM中的详细信息
- JVM——Java中的线程安全
- java中的OutOfMemory设置jvm启动参数
- 程序启动画面+线程中的延时操作
- java程序在JVM中的运行顺序:
- 获取java中jvm启动的线程信息
- JVM 本地连接失败时,检查运行程序JVM启动参数
- JVM中的线程
- 查看JVM中的线程
- Java中的线程的创建与启动
- eclipse启动的java程序使用的jvm参数
- jvm启动时有几个线程
- jvm 可启动线程数
- Java-线程、JVM
- Java JVM启动参数
- Java线程与创建Java程序中的线程池
- 用java程序启动电脑中的软件
- ZenCart按不同的国家及购买数量设置不同的运费
- 惦念一个人的句子
- JavaScript内置对象Math 产生随机整数
- html入门
- DirectX9 SDK Samples(20) HDRDemo Sample(3)
- 启动Java程序时JVM中的线程
- IO系统性能之一:衡量性能的几个指标
- ajax提交项目乱码问题 java web
- 玩的是一种成就感
- 多线程
- POJ1383
- Reactive Extensions (Rx) 入门(2) —— 安装 Reactive Extensions
- RVDS3.1破解
- 黑马程序员--建立一个Udp传输服务进行数据的传输和接收