ConcurrentHashMap 中的分段

2023-12-12

我是 Java 世界的新手,我在探索 ConcurrentHashMap API 时发现了这一点:

static final int DEFAULT_INITIAL_CAPACITY = 16;
  static final float DEFAULT_LOAD_FACTOR = 0.75F;
  static final int DEFAULT_CONCURRENCY_LEVEL = 16;
  static final int MAXIMUM_CAPACITY = 1073741824;
  static final int MAX_SEGMENTS = 65536;
  static final int RETRIES_BEFORE_LOCK = 2;
  final Segment<K, V>[] segments;
final Segment<K, V> segmentFor(int paramInt)
  {
    return this.segments[(paramInt >>> this.segmentShift & this.segmentMask)];
  }

ConcurrentHashMap 中分段的基本原理是什么以及为什么使用它?请提供有关细分概念的更多建议。


并发哈希映射将其内容分为段,以减少写入器锁争用。

The concurrencyLevel参数定义段数。默认为 16。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

ConcurrentHashMap 中的分段 的相关文章

随机推荐

  • Java 构造函数未定义?

    好的 我正在为学校做一项作业 我设置了我的主类和另一个名为 Transaction 的类 在我的主课中 我有 Transaction t new Transaction Transaction 带有下划线 它表示构造函数未定义 为什么 Tr
  • 如何在 C# 中使用 32 位 unicode 字符?

    也许我不需要 32 位字符串 但我需要表示 32 位字符 http www fileformat info info unicode char 1f4a9 index htm现在我抓住了符号字体 并且在粘贴它时可以看到该字符 在网址或任何文
  • openerp 7 中的字段级访问权限和安全性

    假设我有 3 个用户 如下 user employee having access rights Human Resource Employee group user officer having access rights Human R
  • 等待一次获取完成后再开始下一次获取

    我有一个要发送到谷歌云的数据列表 我当前的代码如下所示 const teams LFC MUFC CFC teams forEach team gt fetch url URL method PUT body team 这适用于一个team
  • Android 中可以通过 String id findView 吗?

    Android 中可以通过 String Id 来 findView 吗 我以编程方式在表中添加一些行 并且在下一次迭代中需要删除其中一些行 并且我有列表 id tblRow 1 tblRow 3 我可以通过 id 从列表中检索吗 Use
  • 如何使用 perl 与用户和 SSL 身份验证进行 SMTP 连接并发送带附件的电子邮件

    我使用的是 SMTP 邮件服务器 需要用户 ssl 身份验证才能连接 我正在寻找 perl 模块来连接到邮件服务器并发送电子邮件 但没有发现任何有用的东西 任何有关 perl 模块或任何 perl 代码的建议将不胜感激 EDIT 我尝试使用
  • 这些示例中“this”的调用有什么区别?

    我正在读克罗克福德的 JS 好部分 他有两个使用这个的例子 我不明白为什么在一个例子中他使用this在另一个他使用that 第一个例子 String method deentify function var entity quot lt l
  • 为什么复杂对象的“in”类型不窄?

    当我使用 in 对复杂对象进行类型缩小时 我偶然发现了 Typescript 中的问题 除非我首先提取它的代理变量 否则它不会正确缩小类型 type Animal fish Fish bird Bird type Fish swim gt
  • Symfony2,加载没有缓存的css文件

    目前我正在做基于symfony2的网站设计 问题是如何禁用css文件的缓存 现在 如果我更改 css 文件中的某些内容 浏览器中不会发生任何变化 当我尝试缓存 清除时 仍然什么也没有 配置 yml Assetic Configuration
  • kotlin,如何返回泛型类型成员变量

    返回泛型类型的成员变量时出错 在 Android 上 不确定是否有任何区别 private var mData T null override fun
  • 适用于 Windows 7 的 Epson OPOS ADK for .NET 驱动程序

    有没有人使用 Epson OPOS ADK for NET for Windows 7 我尝试在 Windows 7 上安装 Windows Vista 驱动程序 因为没有适用于 Windows 7 的驱动程序 但它不起作用 请分享任何可能
  • 您可以将 WCF 服务中的 WSDL 和 XSD 数据结合起来吗?

    是否可以创建一个文件来从 WCF 生成的 WSDL 文件 以及也从此服务生成的任何其他 XSD 文件 生成客户端 我可以使用 svcutil exe 生成一个有效的客户端 同时传递 wsdl 文件和每个 xsd 文件 但我有一个客户正在使用
  • 在 $PATH 中找不到 docker 可执行文件

    尝试在正在运行的 docker compose 容器上运行 Rails 迁移会引发以下错误 docker compose run webapp rails db migrate 错误 无法启动服务 webapp 标头字段值无效 oci 运行
  • 将函数分配给变量时出错

    我有简单的代码如下 var println print println test 它给了我错误 missing argument for parameter 2 in call 我添加了更多参数 println test n 它仍然给我同样
  • 异步 Action api 如何在 scala 的 play 框架 2.2.x 中工作?

    我试图创建异步 api 但响应显示顺序执行 完成步骤 在 chrome 的两个选项卡中打开 url 并且快速地一一击打他们 网址前 localhost 9000 getStar 但执行日志是这样的 info play Listening f
  • 识别R中的时间

    我正在 R 中处理一个具有如下时间变量的数据集 Time data frame X1 c 930 1130 914 1615 X1 的前两位表示小时 后两位表示分钟 我想让 R 将其识别为时间变量 我尝试使用 lubridate hm 函数
  • 如何在不使用 CTE 的情况下从日期范围创建日期列表

    以下链接解释了如何将日期范围转换为日期列表 我使用了这种方法 它工作正常 但查询没有执行 我使用 Maxrecursion 0 来无限 http blog justinstolle com sql turn a date range int
  • NGINX:将非 www https 重定向到 https://www

    我遵循了这个答案https stackoverflow com a 28068250 3108268但它仅从 http 重定向到 https 将非 www 重定向到 www 但如果我访问我的网站https example com我收到 您的
  • 如何获取iPhone上的WIFI网关地址? [复制]

    这个问题在这里已经有答案了 我需要获取与 iPhone 连接的 wifi 网络的网关地址 有人知道如何得到它吗 只是为了澄清一下 我正在寻找此屏幕的信息 Thanks 添加到您的项目route h文件来自http opensource ap
  • ConcurrentHashMap 中的分段

    我是 Java 世界的新手 我在探索 ConcurrentHashMap API 时发现了这一点 static final int DEFAULT INITIAL CAPACITY 16 static final float DEFAULT