普通JAVA程序包含的线程

                                 一个普通的JAVA程序运行包含的线程

一、开门见山

     1、方式一:代码查看

      Java语言内置多线程就不在介绍了,一个特别普通的java程序运行时有几个线程也是同时运行的。下面通过一个程序来演示一下main线程运行的同时.

  import java.lang.management.ManagementFactory;
  import java.lang.management.ThreadInfo;
  import java.lang.management.ThreadMXBean;
  import java.time.Duration;
  import java.time.Instant;
/**
* Title:TestMultiThread  
* Description:JMX查看一个java程序包含哪些线程 
* @author XXX 
* @date XXXX
 */
public class TestMultiThread {
      public static void main(String[] args) {
//获取运行时间,采用Java8的时间API
      Instant start=Instant.now();
    //获取Java线程管理MXBean。
      ThreadMXBean threadMXBean=ManagementFactory.getThreadMXBean();
    //不需要获取同步的monitor和synchronized的信息,获取线程和堆栈信息
      ThreadInfo[] threadInfos=threadMXBean.dumpAllThreads(false, false);
    //遍历线程的信息,包括ID和线程名称
      for(ThreadInfo threadInfo:threadInfos){
      System.out.println("[线程的ID"+threadInfo.getThreadId()+"]"+"  "+"线程的名称"+threadInfo.getThreadName());
      }
         Instant end=Instant.now();
         System.out.println("运行的时间为:"+Duration.between(start, end).toMillis()+"ms");
}    
}

   程序运行结果如下:

   [线程的ID5]  线程的名称Attach Listener    //附加的线程监听器
   [线程的ID4]  线程的名称Signal Dispatcher   //分发处理发送给JVM信号的线程 
   [线程的ID3]  线程的名称Finalizer        //调用对象的finalize方法的线程
   [线程的ID2]  线程的名称Reference Handler  //清除Reference的线程
   [线程的ID1]  线程的名称main          //mian线程
   运行的时间为:30ms

  简单的说明一下:ThreadMXBean 是Java虚拟机线程系统的管理接口.

  ThreadInfo:返回线程信息.

  2、IDEA下的Debug方式 

        通过运行调试即可看到多个线程信息.

  这个案例说明:一个Java程序的运行不单单是main()方法在运行的,而是main线程和多个线程的同时运行的.来完成任务的.了解一 下这几个线程就可以了.          

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

大道之简

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值