问题标签 [concurrenthashmap]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
3 回答
3015 浏览

java - 如何从此 ConcurrentHashMap 中删除一个值>

我有以下格式的 ConcurrentHashMap:

现在在这张地图中,我想删除数组列表中的一个特定值。任何人都可以指导一下。

EDIT1:我有一张地图 <"packet1"--><"NR1",[Pr1,Pr2]>> <"packet1"--><"NR2",[Pr1,Pr2]>>

现在,当我删除 map.get("packet1").get("NR1").remove("Pr2") 时,它会从 NR1 和 NR2 中删除 Pr2。Isnt 应该只从 NR1 中删除。我在这里做错什么了吗.plz告诉我,

PS:我第二次更新了同一个键 packet1 的地图,同时具有 NR1 和 NR2 的值

0 投票
2 回答
2266 浏览

java - 集合的 Java ConcurrentHashMap 模式

我在多线程应用程序中常用的数据结构是 ConcurrentHashMap,我想在其中保存一组共享相同键的项目。为特定键值安装第一项时会出现此问题。

我一直在使用的模式是:

是否有更好的模式来执行此操作?这甚至是线程安全的吗?Set有没有比内部更好的类java.util.HashSet

0 投票
3 回答
3263 浏览

java - 使用 threadafty 对 concurrentHash Map 进行排序

我在“多线程”应用程序中使用“concurrentHashMap”。我能够按照这里的描述对其进行排序。但由于我正在将 hashmap 转换为列表,所以我有点担心 thred 的安全性。我的“ConcurrentHashMap”是一个静态变量,因此我可以保证只有一个实例。但是当我要对其进行排序时,我将其转换为列表,然后排序然后将其放回新的 concurrentHashMap。

这是多线程激活的好习惯吗?

请让我知道您的想法和建议。

先感谢您。

0 投票
4 回答
5219 浏览

java - 结合 putIfAbsent 并替换为 ConcurrentMap

我有一个用例,我必须

  • 如果 ConcurrentHashMap 中不存在该键,则插入一个新值
  • 如果键已经存在于 ConcurrentHashMap 中,则用新值替换旧值,其中新值是从旧值派生的(不是昂贵的操作)

我提供以下代码:

你认为它是正确的和线程安全的吗?

有没有更简单的方法?

0 投票
5 回答
8217 浏览

java - 并发 HashMap:检查大小

Concurrent Hashmap 可以解决在 hashmap 中出现的同步问题。因此,如果我们使用带 hashmap 的同步键工作,添加和删除会很快。如果有多个线程检查 concurrentHashMap 大小,那么检查 hashmap 大小呢?是否还需要同步关键字:如下:

0 投票
2 回答
498 浏览

java - 既然我们有 ConcurrentHashMap,我们还需要 Hashtable 吗?

Java 的java.util.Hashtable功能与java.util.HashMap. 它们的主要区别在于Hashtable线程安全和同步,而HashMap不是。从 JDK5 开始,我们就有ConcurrentHashMap了可用于多线程上下文的。它的性能比Hashtable. 那么我们有什么理由Hashtable在未来使用呢?

0 投票
1 回答
5183 浏览

tomcat - JVM HeapDump:内存在“java.util.concurrent.ConcurrentHashMap$Segment”的一个实例中累积

我在使用 JVM 堆时遇到了问题。

我们使用 Apache HTTP Server 和 Apache Tomcat Application Server 运营一个网站。

所有对 Apache HTTP 服务器的 *.jsp 请求都将被重定向到 Tomcat 服务器(协议:ajp)。

该网站有超过 10'000 个 jsp 文件。

我们还有一个谷歌搜索工具,它每晚都会抓取网站。

当它爬行时,jvm 堆空间上升到 8 GB 的最大限制。

使用 javamelody,我可以看到堆空间增加类似于加载的类。

为了分析,我做了一个堆转储。

以下是来自 eclipse MAT 的报告:


“org.apache.catalina.loader.StandardClassLoader @ 0x7092c5148”加载的“org.apache.jasper.servlet.JspServlet”的一个实例占用了1'189'603'328(96.75%)字节。

内存在“”加载的“java.util.concurrent.ConcurrentHashMap$Segment[]”的一个实例中累积。

关键词

java.util.concurrent.ConcurrentHashMap$Segment[]

org.apache.catalina.loader.StandardClassLoader @ 0x7092c5148

org.apache.jasper.servlet.JspServlet


GSA 请求是否存在问题?

为什么JVM不能卸载生成的类?

0 投票
3 回答
18693 浏览

java - ConcurrentHashMap 锁定

我在某处读到ConcurrentHashMap,整个地图对象没有被锁定,而是在地图的一部分上进行了锁定。

有人可以详细说明锁定何时出现吗?

在阅读地图时没有涉及锁定但在更新它时只使用锁定是对的吗?

0 投票
7 回答
18579 浏览

java - ConcurrentHashMap:避免使用“putIfAbsent”创建额外的对象?

我正在为多线程环境中的键聚合多个值。密钥是事先不知道的。我以为我会做这样的事情:

我看到的问题是,每次运行此方法时,我都需要创建一个新的 an 实例ArrayList,然后我将其丢弃(在大多数情况下)。这似乎是对垃圾收集器的无理滥用。有没有更好的、线程安全的方法来初始化这种结构而不必使用synchronizerecord方法?我对让该方法不返回新创建的元素的决定感到有些惊讶putIfAbsent,并且除非需要(可以这么说),否则缺乏一种推迟实例化的方法。

0 投票
5 回答
4657 浏览

java - 并发 hashmap size() 方法复杂度

我想知道size()调用的方法是否与通常的 HashMap 方法ConcurrentHashMap具有相同的复杂性。size()