From 5f086e3403ce3bebf2b411299c04cec105571e0a Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E6=A7=9F=E6=A6=94=E5=8A=A0=E7=83=9F=E6=B3=95=E5=8A=9B?= =?UTF-8?q?=E6=97=A0=E8=BE=B9?= <18716369741@163.com> Date: Tue, 14 Apr 2020 15:56:15 +0800 Subject: [PATCH] update apidoc/java/util/concurrent/ConcurrentHashMap.html. --- apidoc/java/util/concurrent/ConcurrentHashMap.html | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/apidoc/java/util/concurrent/ConcurrentHashMap.html b/apidoc/java/util/concurrent/ConcurrentHashMap.html index 92ec100..b26460f 100644 --- a/apidoc/java/util/concurrent/ConcurrentHashMap.html +++ b/apidoc/java/util/concurrent/ConcurrentHashMap.html @@ -238,7 +238,7 @@ implements Hashtable相同的功能规范,并包括与Hashtable每种方法对应的方法的Hashtable不过,尽管所有操作都是线程安全的,检索操作并不意味着锁定,并没有为防止所有访问的方式锁定整个表的任何支持。 这个课程在程序中完全可以与Hashtable进行互操作,程序依赖于其线程安全性,但不依赖于其同步细节。 -

检索操作(包括get )通常不阻止,因此可能与更新操作重叠(包括putremove )。 检索反映了最近完成的更新操作的结果。 (更正式地,对于给定密钥的更新操作熊之前发生与任何(非空关系)检索该键报告经更新的值。)对于聚合操作,比如putAllclear ,并发检索可能反映插入或移除只有一些条目。 类似地,迭代器,分割器和枚举返回在反映迭代器/枚举创建过程中或之后反映哈希表状态的元素。 他们抛出ConcurrentModificationException 然而,迭代器被设计为一次只能由一个线程使用。 请记住,骨料状态方法的结果,包括sizeisEmpty ,并containsValue通常是有用的,只有当一个地图没有发生在其他线程并发更新。 否则,这些方法的结果反映了可能足以用于监视或估计目的的瞬态状态,但不适用于程序控制。

+

检索操作(包括get )通常不阻止,因此可能与更新操作重叠(包括putremove )。 检索反映了最近完成的更新操作的结果。 (更正式地,对于给定密钥的更新操作熊之前发生与任何(非空关系)检索该键报告经更新的值。)对于聚合操作,比如putAllclear ,并发检索可能反映插入或移除只有一些条目。 类似地,迭代器,分割器和枚举返回在反映迭代器/枚举创建过程中或之后反映哈希表状态的元素。 他们抛出ConcurrentModificationException 然而,迭代器被设计为一次只能由一个线程使用。 请记住,聚合状态方法的结果,通常是sizeisEmptycontainsValue,仅当映射在其他线程中没有进行并发更新时才有用。 否则,这些方法的结果反映了可能足以用于监视或估计目的的瞬态状态,但不适用于程序控制。

当存在太多的冲突(即,具有不同的哈希码但是以表的大小为模数落入相同的时隙的密钥)时,该表被动态扩展,并且每个映射保持大致两个bin的预期平均效果(对应于0.75负载调整大小的因子阈值)。 这个平均值可能会有很多变化,因为映射被添加和删除,但是总的来说,这为哈希表保留了普遍接受的时间/空间权衡。 然而,调整这个或任何其他类型的散列表可能是相对较慢的操作。 如果可能,最好提供一个大小估计作为可选的initialCapacity构造函数参数。 附加的可选的loadFactor构造函数参数提供了通过指定在计算给定数量的元素时要分配的空间量而使用的表密度来定制初始表容量的另一种方法。 此外,为了与此类的以前版本兼容,构造函数可以可选地指定预期的concurrencyLevel作为内部大小调整的附加提示。 请注意,使用完全相同的许多键hashCode()是降低任何哈希表的性能的一种可靠的方法。 为了改善影响,当按键为Comparable ,该类可以使用键之间的比较顺序来帮助打破关系。

Set投影一个的ConcurrentHashMap可以(使用被创建newKeySet()newKeySet(int) ),或观察(使用keySet(Object)时仅键是感兴趣的,并且被映射的值是(可能瞬时)不使用或全部取相同的映射值。

ConcurrentHashMap可以通过使用LongAdder值作为可缩放频率映射(直方图或多分集的形式),并通过computeIfAbsent进行初始化。 例如,要添加一个计数到ConcurrentHashMap<String,LongAdder> freqs ,可以使用freqs.computeIfAbsent(key, k -> new LongAdder()).increment();

-- Gitee