命名線程和當前線程

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