我在java线程模型api中读过有关java线程的一件事。它说多个线程可以具有相同的名称。但是每个线程的pid都是唯一的,对吧?那叫什么名字?是不是线程类名?
答案 0 :(得分:6)
那么这个名字是什么?是不是线程类名?
该名称是您使用Thread.setName
设置的名称。它只是为了诊断的目的。如果您未调用Thread.setName
或向构造函数提供名称,则将根据文档确定该值:
分配一个新的Thread对象。此构造函数与
Thread (null, null, gname)
具有相同的效果,其中gname是新生成的名称。自动生成的名称的格式为"Thread-"+n
,其中n是整数。
(在诊断上,给出一个指明其用途的特定线程名称显然更有用。)
答案 1 :(得分:5)
创建新线程时,会为其分配一个自动生成的名称,其格式为 - "Thread-0"
,"Thread-1"
。
但是,您可以随时使用Thread#setName()
方法更改线程的名称: -
Thread.currentThread().setName("ABC");
Thread.currentThread()
返回对当前线程执行的引用,然后将该线程的名称设置为"ABC"
。
答案 2 :(得分:1)
不是它是一个线程名称,如果你看到一个线程转储,你将知道哪个线程正在做什么。 :)