在設計線程安全類的過程中,需要包含以下三個要素:
- 找出構成對象狀態的所有變量
- 找出約束狀態變量的不變性條件
- 建立對象狀態的併發訪問管理策略
如果在某個操作中包含有基於狀態的先驗條件,那麼這個操作就稱爲依賴狀態的操作
將數據封裝在對象內部,可以將數據的訪問限制在對象的方法上,從而更容易確保線程在訪問數據時總能持有正確的鎖
封閉機制更易於構造線程安全的類,因爲當封閉類的狀態時,在分析類的線程安全性時就無須檢查整個程序
如果一個類是由多個獨立且線程安全的狀態變量組成,並且在所有的操作中都不包含無效狀態轉換,那麼可以將線程安全性委託給底層的狀態變量