Concurrent原理

Posted zawjdbb

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Concurrent原理相关的知识,希望对你有一定的参考价值。

ConcurrentHashMap和HashTable类似,但加锁方式不同

HashTable是锁住整个map

ConcurrentHashMap的基本思想是采取分块的方式加锁,分块数由参数“concurrencyLevel”来决定(和HashMap中的“initialCapacity”类似,实际块数是第一个大于concurrencyLevel的2的n次方)。每个分块被称为Segment,Segment的索引方式和HashMap中的Entry索引方式一致(hash值对数组长度取模)。

对Segment加锁的方式很简单,直接把Segment定义为ReentrantLock的子类。

static final class Segment<K,V> extends ReentranceLock implements Seriable{}

Segmentk可以看出一个特定实现的HashTable。

以上是关于Concurrent原理的主要内容,如果未能解决你的问题,请参考以下文章

(Concurrent)HashMap的存储过程及原理。

java concurrent包的实现原理

第1945期彻底搞懂React源码调度原理(Concurrent模式)

对Java原子类AtomicInteger实现原理的一点总结

python concurrent.futures

python并发性能concurrent.futures