2019-12-10:谈一谈java线程安全的集合有哪些?
MoJieBlog opened this issue · comments
最近找题要找好久。更新有点不及时,抱歉。
- 早期的线程安全集合
- Vector
= 全部方法加 synchronized 的 ArrayList - HashTable
= 全部方法加 synchronized 的 HashMap
- 包装工具类
- Collections.synchronizedXXX()
在原集合的基础上添加了锁对象,集合中的每个方法都通过这个锁对象实现同步
- java.util.concurrent包
- ConcurrentHashMap
1.7 分段锁技术,1.8 对table每行首元素加锁 - CopyOnWriteXXXX
加了写锁,写的时候锁住的整个对象,读则可以并发执行
- 其他
- Stack
继承了 Vector
补充
BlockingQueue
StringBuffer