美文网首页
简单的"Hello Word"用了几个线程

简单的"Hello Word"用了几个线程

作者: OPice | 来源:发表于2019-11-18 10:04 被阅读0次

今天遇到了一个很有意思的问题:写一个最简单的打印 HelloWorld 的程序,说说看,运行这个应用,Java 至少会创建几个线程呢?

使用MXBean 管理器

public class Hello {
    public static void main(String[] args) {
        System.out.println("Hello Word!");
         //获取threadMXBean
        ThreadMXBean threadMXBean = ManagementFactory.getThreadMXBean();
        long[] allThreadIds = threadMXBean.getAllThreadIds();
         //根据ThreadId获取线程信息
        ThreadInfo[] threadInfos = threadMXBean.getThreadInfo(allThreadIds);
        for (ThreadInfo threadInfo:threadInfos) {
            //打印线程id和线程名称 
            System.out.println(threadInfo.getThreadId()+":"+threadInfo.getThreadName());
        }
    }
}

运行环境

JDK 1.8

  • IDE 运行结果
Hello Word!
5:Monitor Ctrl-Break
4:Signal Dispatcher
3:Finalizer
2:Reference Handler
1:main
  • java 运行文件
$javac HelloDemo.java 
$ java HelloDemo
Hello Word!
4:Signal Dispatcher
3:Finalizer
2:Reference Handler
1:main
  • Reference Handler : 处理对象引用本身的垃圾回收
  • Finalizer : 处理用户的finalizer方法
  • Signal Dispatcher :外部jvm命令转发器

IDEA 工具多了一个Monitor Ctrl-Break线程,Debug模式下不会有。

相关文章

网友评论

      本文标题:简单的"Hello Word"用了几个线程

      本文链接:https://www.haomeiwen.com/subject/yjlvictx.html