高併發同步類容器

老的同步類容器

比如Vector、HashTable、TreeMap (支持排序),原理是在所有公共方法上加synchronized關鍵字(高併發不用)。再併發修改(迭代過程中併發修改了內容)的情況下要加鎖保護操作,否則會報ConcurrentModificationException。

JAVA 1.5同步類容器

CopyOnWriteArrayList代替Vector,ConcurrentHashMap代替HashTable ,ConcurrentSkipListMap代替TreeMap ;還有隊列Quence

ConcurrentHashMap提高併發效率的原理是縮小鎖的粒度,最多分成16段(16個鎖)。
CopyOnWriteArrayList/CopyOnWriteArraySet(寫時複製,讀寫分離) 原理是需要更新容器中的數據的時候,會複製一份新容器,更新操作的是新容器,最後將原容器索引指向新容器。

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章