主线程的名称

时间:2012-09-26 11:38:01

标签: java multithreading

我们可以更改主线程的名称吗? 并在主要方法

Thread t = Thread.currentThread();  
System.out.println(t);

打印:

Thread[main,5,main]

- 这里是第一个线程名称,第二个优先级,第三个是当前线程所属的线程组。

是不是?

什么是线程组第三个参数?

2 个答案:

答案 0 :(得分:11)

来自Thread

的Javadoc
  

public final void setName(String name)

     

将此线程的名称更改为等于参数名称。

  

public String toString()

     

返回此线程的字符串表示形式,包括线程的名称,优先级和线程组。


Thread t = Thread.currentThread();
System.out.println(t);
t.setName("new thread name");
System.out.println(t);

打印

Thread[main,5,main]
Thread[new thread name,5,main]

要更改ThreadGroup的名称,您可以使用反射,但这不太可能是个好主意。

答案 1 :(得分:-2)

获取当前线程名称的正确方法是

System.out.println("Name of Thread is " + Thread.currentThread().getName());

其中currentThread()是Thread类的静态方法,它引用当前正在执行的线程; getName()是给出该线程名称的函数。