Concurrent 与 CopyOnWrite 容器简单介绍
2017-10-07 17:51
239 查看
Concurrent与CopyOnWrite 容器
Concurrent与CopyOnWrite 容器ConcurrentMap 两个重要实现
ConcurrentHashMap
ConcurrentSkipListMap支持并发排序
CopyOnWrite 两个重要实现
CopyOnWriteArrayList
CopyOnWriteArraySet
ConcurrentMap 两个重要实现
1 ConcurrentHashMap :
ConcurrentHashMap:内部使用段(Segment)来表示这些的不同部分,每个段其实就是一个小的 HashTable, 他们都有自己的锁。只要修改操作发生在不同的段上,就可以并发的进行。
注意:
ConcurrentHashMap 把一个整体分成 16 段。也就是最高支持16个线程的并发操作。这也是在多线程场景时,减小锁的粒度,从而降低锁的竞争的一种解决方案。
2 ConcurrentSkipListMap(支持并发排序) :
CopyOnWrite 两个重要实现
CopyOnWrite 原理:CopyOnWrite容器,即写时复制的容器。通俗的理解是当我们需要往容器里面添加一个元素的时候,我们不是直接向原来的容器添加,而是将原来的容器拷贝一份,然后再往新的容器里面添加, 添加完成以后,将原来容器的引用,指向新的容器。这样做的好处就是我们可以对CopyOnWrite容器进行并发的读。
注意:
1 CopyOnWrite容器 适用于读多写少的应用场景。
2 由于 读的时候使用了 ReentrantLock(重入锁) 所以多个线程同时写入的时候不会出现数据不一致的情况
1 CopyOnWriteArrayList :
2 CopyOnWriteArraySet :
相关文章推荐
- windows7下从docker容器启动memcached服务的简单介绍
- SSIS中的容器和数据流—简单介绍
- 标准库容器 vector 和 迭代器 iterator 的简单介绍
- 并发编程复习(七):并发类容器ConcurrentHashMap&CopyOnWrite
- 容器的简单介绍
- JAVA容器--简单介绍(1)
- 容器和泛型的简单介绍
- SSIS中的容器和数据流—简单介绍
- IOC容器的简单介绍
- 容器和泛型的简单介绍
- 蛙蛙推荐:简单介绍一下托管容器持久性(CMP),顺便征集一下.NET CMP2.0的改进方案
- WPF之核心面板(容器)控件简单介绍
- Docker容器技术介绍(一) --- Docker安装和简单使用
- C++容器类的简单介绍(转帖)
- 标准C++STL中的容器类简单介绍
- 标准C++中的STL容器类简单介绍
- C++容器类的简单介绍续(转帖)
- vector,list,deque容器的迭代器简单介绍
- C++容器类的简单介绍
- C++ STL中vector(向量容器)使用简单介绍