当前线程名称中的数字是什么意思?

问题描述

我在开发 Java 应用程序时有一个关于 Thread 的问题。

下面的代码是将代码打印到thread.currentThread()中的结果;

Thread[ForkJoinPool-1-worker-2,5,main]

1 是否表示池的索引?

2 是指工人编号吗?

我不知道 1、2、5 的确切数字含义。

谢谢。

解决方法

如果您查看 ForkJoinPull 类,您可以找到许多构造函数之一

ForkJoinPool(...){
  ....
  this.workerNamePrefix = "ForkJoinPool-" + nextPoolId() + "-worker-";
  ....
}

wherenextPoolId() 是 poolNumberSequence。初始化后,workerNamePrefix 将具有下一个值 - “ForkJoinPool-1-worker-...”。 之后,方法 final WorkQueue registerWorker(ForkJoinWorkerThread wt) {} 将在字符串 1414 (wt.setName(prefix.concat(Integer.toString(tid)))) 中设置线程名称,其中 wt 是 ForkJoinWorkerThread 和 tid 是线程的 pid。 您在输出中显示的名称。

相关问答

Selenium Web驱动程序和Java。元素在(x,y)点处不可单击。其...
Python-如何使用点“。” 访问字典成员?
Java 字符串是不可变的。到底是什么意思?
Java中的“ final”关键字如何工作?(我仍然可以修改对象。...
“loop:”在Java代码中。这是什么,为什么要编译?
java.lang.ClassNotFoundException:sun.jdbc.odbc.JdbcOdbc...