码迷,mamicode.com
首页 > 其他好文 > 详细

Concurrent原理

时间:2017-07-29 16:41:54      阅读:222      评论:0      收藏:0      [点我收藏+]

标签:lock   pac   简单   try   init   ini   initial   entry   stat   

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原理

标签:lock   pac   简单   try   init   ini   initial   entry   stat   

原文地址:http://www.cnblogs.com/zawjdbb/p/7256071.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!