學習Java: CopyOnWrite集合

zybing發表於2007-08-16
CopyOnWrite集合避免了在獲取集合的iterator後,進行操作集合發生錯誤的情況[@more@]

CopyOnWriteArray集合有2個: CopyOnWriteArrayList 和 CopyOnWriteArraySet, 最適合於讀操作通常大大超過寫操作的情況

------------------------------------------------------------------
copy-on-write 模式:
實質上,這個模式宣告瞭,為了維護物件的一致性快照,要依靠不可變性(immutability)來消除在協調讀取不同的但是相關的屬性時需要的同步。對於集合,這意味著如果有大量的讀(即 get() ) 和迭代,不必同步操作以照顧偶爾的寫(即 add() )呼叫.

----------------------------------------------------------
CopyOnWriteArrayList 和 CopyOnWriteArraySet 類,所有可變的(mutable)操作都首先取得後臺陣列的副本,對副本進行更改,然後替換副本。這種做法保證了在遍歷自身更改的集合時,永遠不會丟擲 ConcurrentModificationException 。遍歷集合會用原來的集合完成,而在以後的操作中使用更新後的集合。

來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/855/viewspace-960631/,如需轉載,請註明出處,否則將追究法律責任。

相關文章