具有相同名称的线程

don*_*yor 4 java multithreading

我在java线程模型api中读过有关java线程的一件事.它说多个线程可以具有相同的名称.但是每个线程的pid都是唯一的,对吧?那叫什么名字?是不是线程类名?

Jon*_*eet 8

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

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

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

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


Roh*_*ain 6

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

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

Thread.currentThread().setName("ABC");
Run Code Online (Sandbox Code Playgroud)

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