Java執行緒的命名與取得當前執行緒資訊
阿新 • • 發佈:2019-01-13
執行緒的命名:
public Thread(Runnable target,String name);
使用:new Thread(物件的引用,“執行緒名”).start();
public final synchronized void setName(String name);
使用:Thread.currentThread.setName(“執行緒名”)
執行緒資訊的取得
public static native Thread currentThread();
使用:Thread.currentThread();//取得當前執行緒的所有資訊
public final String getName();
使用:Thread.currentThread.getName();//取得當前執行緒的物件
注: native指的是告訴編譯器該方法是本地方法,不是用java編寫的是用其他語言寫的(一般是c/c++)。說明這個方法是原生函式,被編寫在DLL(動態連結函式)中,Java使用時會自動去作業系統中呼叫。
舉例:
class MyThread implements Runnable { @Override public synchronized void run() { System.out.println("當前執行緒" + Thread.currentThread()); System.out.println("執行緒名稱" + Thread.currentThread().getName()); System.out.println("執行緒ID:"+Thread.currentThread().getId()); System.out.println("執行緒優先順序"+Thread.currentThread().getPriority()); } } class Test{ public static void main(String[] args){ MyThread myThread = new MyThread(); new Thread(myThread).start(); new Thread(myThread).start(); new Thread(myThread,"abaka").start(); Thread thread = new Thread(myThread); thread.setName("abaka2"); thread.start(); } }
結果:
當前執行緒Thread[Thread-0,5,main]
執行緒名稱Thread-0
執行緒ID:11
執行緒優先順序5
當前執行緒Thread[Thread-1,5,main]
執行緒名稱Thread-1
執行緒ID:12
執行緒優先順序5
當前執行緒Thread[abaka,5,main]
執行緒名稱abaka
執行緒ID:13
執行緒優先順序5
當前執行緒Thread[abaka2,5,main]
執行緒名稱abaka2
執行緒ID:14
執行緒優先順序5
注: 當沒有為執行緒命名時,執行緒預設從Thread-0開始。