jdk1.4 如何计算统计 JVM自 启动以来创建和/或启动的线程总数。
  谢谢各位了!

解决方案 »

  1.   

    用JVM的管理接口肯定可以,不过我没做过。
    你看看 jconsole 就知道了!
      

  2.   

    Thread类中有一个int型的静态变量, 每次创建一个线程都会加1, 楼主可以用反射的方式取这个变量, 这个是Sun JDK里的,其它JDK实现没有查看
    但是new出来的Thread,不一定会调用start方法,也可能只是当runnable用的, 不一定准确正规的方法, 可以这样做, 首先通过
    Thread.currentThread().getThreadGroup()
    获取当前线程的线程组, 然后递归的取每个线程组的父线程组,一直到最顶的线程组,然后遍历线程组,获取所有的线程信息
    然后再统计个数,且可以根据Thread.isAlive(), Thread.getState(),获取线程信息
    当然上面的方法, 可能存在并发问题,可能有的线程,生命周期太短,无法检测如果需要更精确的方法, 只能通过改写JDK里的Thread方法或通过JDI来实现了