1. 程式人生 > >Java併發理論基礎—執行緒安全策略

Java併發理論基礎—執行緒安全策略

不可變物件需要滿足的條件

1、物件建立以後其狀態就不能修改

2、物件所有域都是final型別

3、物件是正確建立的(在物件建立期間,this引用沒有逸出)

final關鍵字:類、方法、變數

修飾類:不能被繼承

修飾方法:1、鎖定方法不被繼承類修改;2、效率

修飾變數:基本資料型別變數、引用資料型別變數

執行緒封閉

Ad-hoc執行緒封閉:程式控制實現,最糟糕,忽略

堆疊封閉:區域性變數,無併發問題

ThreadLoacl執行緒封閉:特別好的封閉方法

安全共享物件策略

執行緒限制:一個被執行緒限制的物件,由執行緒獨佔,並且只能被佔有它的執行緒修改

共享只讀:一個共享只讀的物件,在沒有額外同步的情況下,可以被多個執行緒併發訪問,但是任何執行緒都不能修改它

執行緒安全物件:一個執行緒安全的物件或者容器,在內部通過同步機制來保證執行緒安全,所以其它執行緒無需額外的同步就可以通過公共介面隨意訪問它

被守護物件:被守護物件只能通過獲取特定的鎖來訪問