Java中線程應用總結

2021-06-16 16:39:20 字數 923 閱讀 3858

1.執行緒是基本排程單元。共享程序的資源,如記憶體和檔案控制代碼。但有自己的pc(程式計數器),stack(執行緒棧)及本地變數

2.執行緒的優勢:

a) 充分利用多處理器

b) 可以簡化模型。特定任務給特定執行緒。如servlets及rmi等框架。

c) 對非同步事件的簡單處理。如socket,nio使用更複雜。而現在的作業系統支援更大數量的執行緒。

d) 介面的更佳響應

3.內部鎖:synchronized塊。互斥。可重入(reentrancy),這樣的設計可以避免死鎖

4.記憶體可見性:因為編譯器的優化,執行緒並不和你看到的一樣。

public class novisibility

}public static void main(string args)

}可能列印0,或者一直迴圈。因為重排序了

5.volatile:可以解決記憶體可見性,對syncronized效能更佳,但僅此而已,如不能保證a++的原子性

6.溢位(escape):不要在建構函式中將this指標溢位。不要將內部變數溢位,如:

class test ;

public string getlist()

}7.執行緒封閉:把物件封閉在乙個執行緒中,無論物件是否是執行緒安全的,都能保證執行緒安全

a) statck限制。即只有本地變數能訪問該物件。

b)threadlocal。

8.不可變物件。一定是執行緒安全的。不可變物件必須滿足:

a) 狀態不能在建立後修改。

b) 所以的域都是final

c) 正確建立物件,沒有this指標溢位

9.安全發布

a) 通過static初始化物件

b) 使用volatile或atomicreference

c) 將引用儲存於正確建立的物件的final域

d) 使用鎖

java中線程問題

24.09 多執行緒 獲取名字和設定名字 掌握 1.獲取名字 通過getname 方法獲取執行緒物件的名字 2.設定名字 通過建構函式可以傳入string型別的名字 new thread start new thread yyy start 通過setname string 方法可以設定執行緒物件的...

JAVA中線程同步方法

在這裡看到的 1 wait方法 該方法屬於object的方法,wait方法的作用是使得當前呼叫wait方法所在部分 塊 的執行緒停止執行,並釋放當前獲得的呼叫wait所在的 塊的鎖,並在其他執行緒呼叫notify或者notifyall方法時恢復到競爭鎖狀態 一旦獲得鎖就恢復執行 呼叫wait方法需要...

Java中線程通訊協作

packagecom.cloud.day1 執行緒的建立方式二 1.自定義乙個類實現 runnable 介面2.實現介面的 run方法,把自定義執行緒的任務定義在 run方法中 3.建立 runnable 實現類物件 4.建立 thread 類實現物件,並把 runnable 實現類物件作為引數傳遞...