有没有办法更改已启动的Thread
或Thread.setName(String name)
的名称仅在线程初始化块中可用?
答案 0 :(得分:8)
该函数名为setName(String name);
Thread t = new Thread(...);
t.start();
t.setName("...");
答案 1 :(得分:6)
您可以在代码的任何部分中设置它仍然具有对原始线程的引用,并且只要SecurityManager允许它。
答案 2 :(得分:0)
在实例化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