有没有办法更改已启动Thread
的名称,或者Thread.setName(String name)
仅在线程初始化块中可用?
该函数称为 setName(字符串名称);
Thread t = new Thread(...);
t.start();
t.setName("...");
您可以在代码的任何部分设置它,只要 SecurityManager 允许它。
线程
名称可以在实例化 Thread 对象时设置,也可以在事后使用 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
请参阅 http://docs.oracle.com/javase/1.5.0/docs/api/java/lang/Thread.html#Thread%28java.lang.Runnable,%20java.lang.String%29