不可變物件 (immutable object) 是指一經建立其狀態就保持不變的物件。不可變物件也具有固有的執行緒安全性,因此不可變物件也可以像無狀態物件那樣被多個執行緒共享,而這些執行緒訪問這些共享物件的時候無須加鎖。當不可變物件所建模的現實實體的狀態發生變化時,系統通過建立新的不可變物件例項來進行反映。
乙個嚴格意義上的不可變物件要同時滿足以下所有條件。
有時建立嚴格意義上的不可變物件比較難,此時不妨考慮使用等效或者近似的不可變物件,這也同樣有利於發揮不可變物件的優勢。
15 保障線程安全的設計技術 無狀態物件
如果乙個類的同乙個例項被多個執行緒共享並不會使這些執行緒存在共享狀態,那麼這個類及其任意乙個例項就被稱為無狀態物件。無狀態物件不含任何例項變數,且不包含任何靜態變數或者其包含的靜態變數都是唯讀的 常量 乙個執行緒執行無狀態物件的任意乙個方法來完成某個計算的時候,該計算的瞬時狀態 中間結果 僅體現在區...
PKI技術能否保障雲計算的安全與可信?
size medium 由於網際網路的急速發展,儲存 計算機能量消耗,資料急劇增長,成本也隨之公升高,原始的網際網路系統與服務設計已經不能解決上述種種問題,網際網路急需新的解決方案。2007年乙個稱為 雲計算 的概念首次被google提出,這是乙個美麗的網路應用模式。隨後,這一it技術風暴席捲了整個...
設計執行緒安全的Servlet
設計執行緒安全的servlet 例項變數和類變數不正確的使用是造成servlet執行緒不安全的主要原因。1 實現 singlethreadmodel 介面 2 同步對共享資料的操作 使用synchronized 關鍵字能保證一次只有乙個執行緒可以訪問被保護的區段,在本 中的servlet可以通過同步...