Java多執行緒程式設計核心技術 拾遺增補

2021-09-02 22:31:23 字數 1035 閱讀 1024

1、執行緒物件在不同的執行時期有不同的狀態,狀態資訊就存在於state列舉類中。

執行緒狀態,執行緒可以處於下列狀態之一。

2、執行緒狀態通俗易懂:

new狀態是執行緒例項化後還未執行start()方法時的狀態

runnable狀態是執行緒進入執行的狀態

terminated是執行緒被銷毀時的狀態

timed_waiting代表執行緒執行了thread.sleep()方法,呈等待狀態,等待時間到達,繼續向下執行。

blocked狀態出現在某乙個執行緒在等待鎖的時候。

waiting是執行緒執行了object.wait()方法後所處的狀態。

3、可以把執行緒歸屬到某乙個執行緒組中,執行緒組中可以有執行緒物件,也可以有執行緒組,組中還可以有執行緒。這樣的組織結構有些類似於樹的形式。

執行緒組的作用是,可以批量的管理執行緒或執行緒組物件,有效地對執行緒或執行緒組物件進行組織。

4、執行緒物件關聯執行緒組:1級關聯。1級關聯就是父物件中有子物件,但並不建立子孫物件。

這種情況經常出現在開發中,比如建立一些執行緒時,為了有效地對這些執行緒進行管理,通常的情況下是建立乙個執行緒組,然後再將部分執行緒歸屬到改組中。這樣的處理可以對零散的執行緒物件進行有效的組織與規劃。

5、執行緒物件關聯執行緒組:多級關聯。所謂的多級關聯就是父物件中有子物件,子物件中再建立子物件,也就是出現子孫物件的效果了。

但是這種寫法在開發中不太常見,如果執行緒樹結構設計得非常複雜反而不利於執行緒物件的管理,但jdk卻提供了支援多級關聯的執行緒樹結構。

6、執行緒組有自動歸屬特性,自動歸屬就是自動歸到當前執行緒組中。

在例項化乙個threadgroup執行緒組x時,如果不指定所屬的執行緒組,則x執行緒組自動歸到當前執行緒物件所屬的執行緒組中,也就是隱式地在乙個執行緒組中新增了乙個子執行緒組。

7、類******dateformat主要負責日期的轉換與格式化,但在多執行緒的環境中,使用此類容易造成資料轉換及處理的不準確,因為******datefromat類並不是執行緒安全的。

多執行緒拾遺 例題

原題 利用多執行緒迴圈列印a b c 思路一 printa printb printc 三個方法,對this加鎖,根據乙個flag來控制列印物件。public class abcre system.out.print a flag b notifyall public synchronized vo...

多執行緒設計拾遺

1 synchronized不能繼承,父類的方法是synchronized,那麼其子類過載方法中就不會繼承 同步 2 構造兩個執行緒之間實時通訊的方法分幾步 1 建立乙個pipedwriter和乙個pipedreader和它們之間的管道 pipedreader in new pipedreader ...

《java多執行緒程式設計核心技術》核心筆記 一

執行緒具有優先順序 執行緒的優先順序具有繼承特性。被呼叫者繼承呼叫者的優先順序 優先順序高的執行緒 絕大部分會現執行 方法內的變數是執行緒安全的。多個執行緒訪問同乙個物件的同步方法時,一定是執行緒安全的。synchronized取得的是物件鎖 多個執行緒訪問乙個物件 synchronized 如果乙...