5

threads我在 Java 线程模型 API 中读过一件事。它表示多个线程可以具有相同的名称。但是每个线程的PID都是唯一的,对吧?那叫什么名字呢?是不是线程类名?

4

3 回答 3

8

那叫什么名字呢?不是线程类名吗?

名称是您设置它使用的任何名称Thread.setName。这只是为了诊断的目的。如果您不调用Thread.setName或向构造函数提供名称,则将根据文档确定该值:

分配一个新的 Thread 对象。此构造函数与 具有相同的效果Thread (null, null, gname),其中 gname 是新生成的名称。自动生成的名称格式为"Thread-"+n,其中 n 是整数。

(显然,给出一个指示其用途的特定线程名称在诊断上更有用。)

于 2012-11-25T20:57:37.633 回答
6

创建新线程时,会为其分配一个自动生成的名称,其格式为 - "Thread-0", "Thread-1"

但是,您可以随时使用以下Thread#setName()方法更改线程的名称:-

Thread.currentThread().setName("ABC");

Thread.currentThread()返回对当前执行线程的引用,然后将该线程的名称设置为"ABC".

于 2012-11-25T20:58:58.093 回答
1

不,这是一个线程名称,如果你看到一个线程转储,你就会知道哪个线程在做什么。:)

于 2012-11-25T20:57:45.313 回答