命名執行緒和當前執行緒


Thread類提供了更改和獲取執行緒名稱的方法。預設情況下,每個執行緒都有一個名稱,即thread-0thread-1, ...等。 可以使用setName()方法更改執行緒的名稱。 setName()getName()方法的語法如下:

  • public String getName() : 用於返回執行緒的名稱。
  • public void setName(String name): 用於更改執行緒的名稱。

命名執行緒的範例

package com.yiibai;

class TestMultiNaming1 extends Thread {
    public void run() {
        System.out.println("running...");
    }

    public static void main(String args[]) {
        TestMultiNaming1 t1 = new TestMultiNaming1();
        TestMultiNaming1 t2 = new TestMultiNaming1();
        System.out.println("Name of t1:" + t1.getName());
        System.out.println("Name of t2:" + t2.getName());

        t1.start();
        t2.start();

        t1.setName("New ThreadName");
        System.out.println("After changing name of t1:" + t1.getName());
    }
}

執行上面範例程式碼,得到以下結果:

Name of t1:Thread-0
Name of t2:Thread-1
After changing name of t1:New ThreadName
running...
running...

當前執行緒

currentThread()方法返回當前正在執行的執行緒的參照。函式的原型如下:

public static Thread currentThread()

currentThread()方法的範例

package com.yiibai;

class TestMultiNaming2 extends Thread {
    public void run() {
        System.out.println(Thread.currentThread().getName());
    }

    public static void main(String args[]) {
        TestMultiNaming2 t1 = new TestMultiNaming2();
        TestMultiNaming2 t2 = new TestMultiNaming2();

        t1.start();
        t2.start();
    }
}

執行上面範例程式碼,得到以下結果:

Thread-1
Thread-0