前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >简单的"Hello Word"用了几个线程

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

作者头像
OPice
发布2019-11-19 16:11:09
6790
发布2019-11-19 16:11:09
举报
文章被收录于专栏:D·技术专栏D·技术专栏

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

使用MXBean 管理器

代码语言:javascript
复制
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 运行结果
代码语言:javascript
复制
Hello Word!
5:Monitor Ctrl-Break
4:Signal Dispatcher
3:Finalizer
2:Reference Handler
1:main
  • java 运行文件
代码语言:javascript
复制
$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模式下不会有。

本文参与 腾讯云自媒体分享计划,分享自作者个人站点/博客。
如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体分享计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 运行环境
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档