java學習總結 執行緒資訊獲取和設定

2021-08-14 13:17:58 字數 1792 閱讀 7313

執行緒資訊的獲取和設定,這裡我們只討論一些主要的資訊,如:id,name, priority,state。

一、id和name資訊的獲取和設定

id屬性是jvm虛擬機器為每乙個新建立的執行緒分配的乙個標識,不可更改,所以只提供了getid的方法獲取id,而沒有設定id的方法。

public class threadtest04 

}//輸出結果

//threadthread1--id: 10 threadthread1--name: mythread

//threadthread2--id: 11 threadthread2--name: mythread

二、priority資訊的獲取和設定

priority表示執行緒的優先順序,值是(1--10),當設定範圍之外的數值時,會報非法引數異常。

這個優先順序越高表示執行緒在獲取cpu時間片時,具有更高的優先權。因此,在同樣的工作量的情況下,優先順序高的執行緒並不一定會早於優先順序低的執行緒執行完成。只有在兩個執行緒同時競爭cpu的時間片的時候,優先順序高的執行緒可以優先獲得cpu的時間片。如下面的**:

public class threadtest04 

}

執行上面的**,你會發現控制台列印出來的值是5。這也就是上面說的執行緒的最大優先順序是小於等於執行緒所在的執行緒組的優先順序最大值的。

public class threadtest06 

}

上面**的執行後,控制台會分別列印出10和5,也就是兩次優先順序設定都生效了。只是後一次設定會覆蓋前一次的值。

三、state資訊的獲取

state表示執行緒執行的狀態,只能讀取,不能設定。執行緒執行的狀態總共有6中:new,runnable,blocked,waiting,time_waiting,terminated。示例:

public class runnablethread implements runnable

@override

public void run() catch (interruptedexception e) }}

public class threadthread extends thread catch (interruptedexception e)

//啟動新執行緒,並等待其執行完成

runnablethread runnablethread = new runnablethread(1);

thread thread = new thread(runnablethread);

thread.start();

try catch (interruptedexception e)

system.out.printf("thread : %s is end\n",thread.currentthread().getname()); }}

public class threadtest06

}

public class runnablethread implements runnable

@override

public void run()

private synchronized void getlock() catch (interruptedexception e) }}

public class threadtest08

}

Java總結 執行緒(三)

多執行緒程式設計專題 使用管道流實現執行緒間資料傳輸 public class test1 catch ioexception e thread t1 new sender pout thread t2 new receiver pin t1.start t2.start class sender ...

執行緒學習總結(執行緒池)

1 使用jdk提供的執行緒池步驟 1 建立執行緒目標物件 runnable介面實現類 2 使用executors建立執行緒池物件,返回executorservice物件 3 執行緒池execute方法執行執行緒物件 4 執行緒池shutdown方法結束執行緒池中的執行緒 2 執行緒池型別 1 new...

Java基礎知識總結(執行緒)

1.執行緒的生命週期 建立 就緒 執行 阻塞 死亡 2.執行緒基本狀態 新建狀態 new thread t new mythread 就緒狀態 runnable 執行緒呼叫物件的start 方法 t.start 表示即將進入就緒狀態。處於就緒狀態的執行緒,說明做好準備隨時等待cpu排程執行。執行狀態...