Java Thread 類和Runnable 接口詳解

一、Thread 類

瞭解如何使用Thread 類實現多線程之後,繼續學習Thread 類實現多線程之後的相關功能及方法。

1、操作線程名稱的方法

構造方法(實現 Runnable 接口時候使用)

  • public Thread(Runnable target,String name); 創建線程時設置線程名稱。

成員方法:

  • public final void setName(String name); 設置線程的名稱。
  • public final String getName(); 獲取線程的名稱。

Demo 代碼示例:

public class TestThread extends Thread{

@Override
public void run() {
    for (int i = 1; i <= 10; i++) {
        System.out.println("我正在編寫多線程代碼"+ i);
    }
}

//程序主線程 main 線程
public static void main(String[] args) {

    //創建子類對象
    TestThread thread = new TestThread();

    // 設置線程名稱
    thread.setName("姚青新創建的線程");

    //調用 start() 方法開啟線程
    thread.start();

    for (int i = 1; i <= 10; i++) {
        System.out.println("我正在學習多線程"+ i);
    }

	// 獲取線程名稱
    System.out.println(thread.getName());
   }
}

運行結果:

2、獲取當前正在執行的線程

public static Thread currentThread(); 返回當前正在執行的線程對象

獲取當前線程對象:Thread.currentThread(); 

獲取當前線程對象名稱 :Thread.currentThread().getName();

Demo代碼示例:

public class TestThread extends Thread{

@Override
public void run() {
    for (int i = 1; i <= 5; i++) {
        System.out.println("我正在編寫多線程代碼"+ i);
    }

    // 獲取start()方法創建出來的線程對象
    System.out.println(Thread.currentThread());

    // 獲取start()方法創建出來的線程對象名稱
    System.out.println(Thread.currentThread().getName());
}

public static void main(String[] args) {
    TestThread thread = new TestThread();
    thread.setName("姚青新創建的線程");
    thread.start();
    for (int i = 1; i <= 5; i++) {
        System.out.println("我正在學習多線程"+ i);
    }
    //System.out.println(thread.getName());

    // 獲取main()主線程對象名稱
    System.out.println(Thread.currentThread().getName());
  }
}

運行結果:

通過運行結果可以發現,在控制臺上分別打印出瞭 “main”、“Thread[姚青新創建的線程,5,main]”、“姚青新創建的線程”,可以看出將新創建的線程對象和對象名稱以及主方法的線程名稱都打印出來瞭。
在使用這個方法的時候需要註意一點,該方法固定的寫法就是 Thread.currentThread(); 放在那個線程中執行這個方法就是指定的那個線程。

推薦閱讀: