发布时间:2025-12-10 23:32:05 浏览次数:1
说明
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);}