gpt4 book ai didi

Java + 我可以使用ConcurrentHashMap来处理100k并发请求吗?

转载 作者:行者123 更新时间:2023-11-30 08:32:47 25 4
gpt4 key购买 nike

我正在开发自定义 i18N 库。在那,我开发了一个函数来根据输入的国家和语言获取语言环境对象。我不想为每个请求都初始化 locale 对象。我可以使用 ConcurrentHashMap 来存储 Locale 对象吗? ConcurrentHashMap 可以处理 100k 并发请求吗?

最佳答案

假设您使用早于 8 的 Java 版本,如果您想最大化 ConcurrentHashMap 的并发级别,您需要:

  1. 使用构造函数创建您的 ConcurrentHashMap 实例 ConcurrentHashMap(int initialCapacity, float loadFactor, int concurrencyLevel)为了设置与要使用的段总数相对应的 concurrencyLevel,知道默认情况下它是 16 并明智地选择它,因为使用比您需要的值高得多的值会浪费空间和时间,并且明显较低的值可能会导致线程争用。
  2. 正确实现 key 的方法 hashCode() 以便尽可能地在不同的段上分配您的条目。

Java 8 中,ConcurrentHashMap 的实现已被彻底审查,因此您不再有段,concurrencyLevel 是现在仅用作调整大小的提示,因此不再需要 #1,但 #2 仍然是一个很好的做法。

关于Java + 我可以使用ConcurrentHashMap来处理100k并发请求吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/39873283/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com