3

開始の名前を変更する方法はありますか、ThreadまたはThread.setName(String name)スレッド初期化ブロックでのみ使用できますか?

4

3 に答える 3

8

この関数はsetName(String name);と呼ばれます。

Thread t = new Thread(...);
t.start();
t.setName("...");
于 2012-06-02T18:48:56.873 に答える
6

SecurityManagerで許可されている限り、元のスレッドへの参照が残っているコードの任意の部分に設定できます。

于 2012-06-02T18:49:35.787 に答える
0

スレッド名は、スレッド オブジェクトインスタンス化するときに設定できます。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を参照してください。

于 2012-06-02T19:02:42.407 に答える