启动main函数,就只有一个main线程么?
程序员文章站
2023-12-03 11:02:52
测试demo:public static void main(String[] args) { //获取Java线程管理MXBean ThreadMXBean threadMXBean = ManagementFactory.getThreadMXBean(); //不需要获取同步Monitor和Synchronizer信息,仅仅只获取线程和线程堆栈信息 ThreadInfo[] threadInfos = threadMXBean.dumpAllThreads(false...
测试demo:
public static void main(String[] args) {
//获取Java线程管理MXBean
ThreadMXBean threadMXBean = ManagementFactory.getThreadMXBean();
//不需要获取同步Monitor和Synchronizer信息,仅仅只获取线程和线程堆栈信息
ThreadInfo[] threadInfos = threadMXBean.dumpAllThreads(false, false);
//遍历线程信息,打印出线程的id和线程饿名称信息
for (ThreadInfo threadInfo : threadInfos) {
System.out.println("线程ID=" + threadInfo.getThreadId() + ",线程名称=" + threadInfo.getThreadName());
}
}
运行结果:
总结
可以发现启动main函数,不是只有一个main线程,还有其他的线程存在,比如Finalizer线程是用于调用对象Finalize方法的线程,Reference Handler线程是用于清除Reference的线程,这也间接说明了Java程序天生就是多线程程序。
本文地址:https://blog.csdn.net/weixin_38106322/article/details/107093666
上一篇: 干货分享: 几何设计学原理の黄金分割在网页设计中的应用
下一篇: C#访问命令行的两种方法