Java线程getID()的困惑

2025-05-09 11:10:14
推荐回答(3个)
回答1:

你用getName方法就是从0开始了,一个程序中还有其他线程在运行,例如执行main方法的主线程,垃圾回收机制啥的,所以你创建的这些线程不会是从0开始的。

回答2:

ID只是一个顺序号

~~~~~~~~

回答3:

MAC 笔记本中 IDEA 创建线程输出 thread.getId() 为12

  1. threadId:11,threadName:Service Thread

  2. threadId:10,threadName:C1 CompilerThread2

  3. threadId:9,threadName:C2 CompilerThread1

  4. threadId:8,threadName:C2 CompilerThread0   C2 Compiler 是JVM在server模式下字节码编译器

  5. threadId:7,threadName:JDWP Command Reader

  6. threadId:6,threadName:JDWP Event Helper Thread

  7. threadId:5,threadName:JDWP Transport Listener: dt_socket

  8. threadId:4,threadName:Signal Dispatcher

  9. threadId:3,threadName:Finalizer

  10. threadId:2,threadName:Reference Handler

  11. threadId:1,threadName:main

其中

编号 1 ~ 8 ,参考:网页链接

编号 9 ~ 11 ,debug 跟踪记录 Thread 源码中 init 方法的 name 值