
说明
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基础
© 版权声明
文章版权归作者所有,未经允许请勿转载。
THE END


















































暂无评论内容