老的同步类容器
比如Vector、HashTable、TreeMap (支持排序),原理是在所有公共方法上加synchronized关键字(高并发不用)。再并发修改(迭代过程中并发修改了内容)的情况下要加锁保护操作,否则会报ConcurrentModificationException。
JAVA 1.5同步类容器
CopyOnWriteArrayList代替Vector,ConcurrentHashMap代替HashTable ,ConcurrentSkipListMap代替TreeMap ;还有队列Quence
ConcurrentHashMap提高并发效率的原理是缩小锁的粒度,最多分成16段(16个锁)。
CopyOnWriteArrayList/CopyOnWriteArraySet(写时复制,读写分离) 原理是需要更新容器中的数据的时候,会复制一份新容器,更新操作的是新容器,最后将原容器索引指向新容器。