常见的并发容器类有哪些,及其实现原理(至少两个)
时间: 2024-01-29 07:05:05 浏览: 74
并联电容器种类介绍
常见的并发容器类有:
1. ConcurrentHashMap:是一个基于分段锁的并发哈希表,通过将整个哈希表分成若干小段,每次只对某一小段进行加锁,从而实现了对整个哈希表的并发访问。
2. CopyOnWriteArrayList:是一个基于写时复制技术的并发容器,每次修改容器时都会创建一个新的容器副本,修改操作在新的容器副本上进行,修改完成后,再将新容器副本的引用赋值给原容器的引用,这样就实现了并发访问而不需要加锁。
实现原理:
1. ConcurrentHashMap:ConcurrentHashMap 内部维护了一个 Segment 数组,每个 Segment 相当于一个小的 Hashtable,它们之间是相互独立的,每个 Segment 内部都是通过 ReentrantLock 实现加锁的。在读操作时,由于每个 Segment 内部都是相互独立的,因此可以同时进行,而在写操作时,只需要对涉及到的 Segment 进行加锁,其他 Segment 不受影响,从而实现了并发访问。
2. CopyOnWriteArrayList:CopyOnWriteArrayList 内部维护了一个 Object 数组,每次修改操作都会创建一个新的数组副本,修改完成后再将新数组副本的引用赋值给原数组的引用。由于读操作不需要加锁,因此可以实现高效的并发访问,但是写操作需要创建新的数组副本,因此会造成一定的性能开销。
阅读全文