Java ConcurrentHashMap是什么

说明

1、ConcurentHashMap结合了HashMap和Hashtable的优点。HashMap不考虑同步,Hashtable考虑同步。但是Hashtable每次同步都要锁定整个结构。

2、ConcurentHashMap锁的方式是稍微细粒度的ConcurentHashMap将hash表分成16桶(默认值),如get、put、remove等常用操作只锁定目前需要的桶。

实例

/**
*Createsanew,emptymapwiththedefaultinitialtablesize(16).
*/
publicConcurrentHashMap(){
}

/**
*Createsanew,emptymapwithaninitialtablesize
*accommodatingthespecifiednumberofelementswithouttheneed
*todynamicallyresize.
*
*@paraminitialCapacityTheimplementationperformsinternal
*sizingtoaccommodatethismanyelements.
*@throwsIllegalArgumentExceptioniftheinitialcapacityof
*elementsisnegative
*/
publicConcurrentHashMap(intinitialCapacity){
if(initialCapacity<0)
thrownewIllegalArgumentException();
intcap=((initialCapacity>=(MAXIMUM_CAPACITY>>>1))?
MAXIMUM_CAPACITY:
tableSizeFor(initialCapacity+(initialCapacity>>>1)+1));
this.sizeCtl=cap;
}

/**
*Createsanewmapwiththesamemappingsasthegivenmap.
*
*@parammthemap
*/
publicConcurrentHashMap(Map<?extendsK,?extendsV>m){
this.sizeCtl=DEFAULT_CAPACITY;
putAll(m);
}

以上就是Java ConcurrentHashMap的介绍,希望对大家有所帮助。更多Java学习指路:Java基础

原文来自:https://www.py.cn
© 版权声明
THE END
喜欢就支持一下吧
点赞13 分享
评论 抢沙发
头像
欢迎您留下宝贵的见解!
提交
头像

昵称

取消
昵称表情代码图片

    暂无评论内容