CopyOnWriteArrayList(免鎖容器)的好處之一是當多個迭代器同時遍歷和修改這 數組
個列表時,不會拋出 ConcurrentModificationException。在 安全
CopyOnWriteArrayList 中,寫入將致使建立整個底層數組的副本,而源數組將保 併發
留在原地,使得複製的數組在被修改時,讀取操做能夠安全地執行。 spa
一、因爲寫操做的時候,須要拷貝數組,會消耗內存,若是原數組的內容比較多的 內存
狀況下,可能致使 young gc 或者 full gc; it
二、不能用於實時讀的場景,像拷貝數組、新增元素都須要時間,因此調用一個 set io
操做後,讀取到數據可能仍是舊的,雖然 CopyOnWriteArrayList 能作到最終一致 容器
性,可是仍是無法知足實時性要求; List
CopyOnWriteArrayList 透露的思想 遍歷
一、讀寫分離,讀和寫分開
二、最終一致性
三、使用另外開闢空間的思路,來解決併發衝突