有没有一种方法可以更改已启动的Thread
的名称,或者Thread.setName(String name)
仅在线程初始化块中可用?
有没有一种方法可以更改已启动的Thread
的名称,或者Thread.setName(String name)
仅在线程初始化块中可用?
这个函数叫做setName(String name);
Thread t = new Thread(...);
t.start();
t.setName("...");
只要安全管理器允许,您可以在仍有对原始线程的引用的代码的任何部分中设置它。
线程名称可以在实例化线程对象时设置,也可以事后使用Thread.currentThread().setName
进行设置。
public class NamedThreadExample implements Runnable {
public static final String THREAD_NAME_GOES_HERE = "Original Name";
public static final String NEW_THREAD_NAME_GOES_HERE = "New Name";
public void run() {
System.out.println("I am a Thread and my name is "
+ Thread.currentThread().getName());
Thread.currentThread().setName(NEW_THREAD_NAME_GOES_HERE);
System.out.println("I am a Thread and my name is "
+ Thread.currentThread().getName());
}
public static void main(String args[]) {
(new Thread(new NamedThreadExample(), THREAD_NAME_GOES_HERE)).start();
}
}
生成输出
I am a Thread and my name is Original Name
I am a Thread and my name is New Name