第一代线程安全集合类
- Vector, Hashtable
- 是怎么保证线程安全的: 使用synchronized修饰方法
- 缺点:效率低下
第二代线程非安全集合类
- ArrayList, HashMap
- 线程不安全, 但性能好, 用来代替Vector, Hashtable
- 使用ArrayList, HashMap, 需要线程安全怎么办呢?
- 使用Collections.synchronizedList(list), Collections.synchronizedMap(map)
- 底层使用synchronized代码块锁, 效率有所提升
第三代线程安全集合类
- 在大量并发情况下如何提高集合的效率和安全?
- java.util.concurrent.*
- ConcurrentHashMap
- CopeOnWriteArrayList
- CopeOnWriteArraySet
- 底层大都采用Lock锁(1.8的ConcurrentHashMap不使用Lock), 保证安全的同时, 性能也很高