Java线程getID()的困惑

publicclassThreadTestextendsThread{privateintcount=1;publicvoidrun(){while(count<=1){... public class ThreadTest extends Thread { private int count = 1; public void run() { while (count<=1) { double t; t=System.nanoTime(); System.out.println(this.getId()+"号线程正在运行,当前时间是"+t+"纳秒。"); count++; } } public static void main(String[] args) { int i=1; while(i<=10) { new ThreadTest().start(); i++; } }}为什么输出来是11到20号线程而不是1到10? 展开
 我来答
百度网友174326c
2016-12-11
知道答主
回答量:28
采纳率:0%
帮助的人:6万
展开全部
你用getName方法就是从0开始亩顷闹了,一个程序中还有其他线程在运行迅罩,例如执行main方法的主线程,垃乎绝圾回收机制啥的,所以你创建的这些线程不会是从0开始的。
匿名用户
2016-12-11
展开全部
ID只是一个顺序号

~~~~~~~~
追问
额。。那为什么是从10开始啊?它不是随机的呀。。
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
命运的左岸521
2019-11-24 · TA获得超过131个赞
知道小有建树答主
回答量:171
采纳率:0%
帮助的人:68.2万
展开全部

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 值

已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 更多回答(1)
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式