问题标签 [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.
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 的值
java - 集合的 Java ConcurrentHashMap 模式
我在多线程应用程序中常用的数据结构是 ConcurrentHashMap,我想在其中保存一组共享相同键的项目。为特定键值安装第一项时会出现此问题。
我一直在使用的模式是:
是否有更好的模式来执行此操作?这甚至是线程安全的吗?Set
有没有比内部更好的类java.util.HashSet
?
java - 使用 threadafty 对 concurrentHash Map 进行排序
我在“多线程”应用程序中使用“concurrentHashMap”。我能够按照这里的描述对其进行排序。但由于我正在将 hashmap 转换为列表,所以我有点担心 thred 的安全性。我的“ConcurrentHashMap”是一个静态变量,因此我可以保证只有一个实例。但是当我要对其进行排序时,我将其转换为列表,然后排序然后将其放回新的 concurrentHashMap。
这是多线程激活的好习惯吗?
请让我知道您的想法和建议。
先感谢您。
java - 结合 putIfAbsent 并替换为 ConcurrentMap
我有一个用例,我必须
- 如果 ConcurrentHashMap 中不存在该键,则插入一个新值
- 如果键已经存在于 ConcurrentHashMap 中,则用新值替换旧值,其中新值是从旧值派生的(不是昂贵的操作)
我提供以下代码:
你认为它是正确的和线程安全的吗?
有没有更简单的方法?
java - 并发 HashMap:检查大小
Concurrent Hashmap 可以解决在 hashmap 中出现的同步问题。因此,如果我们使用带 hashmap 的同步键工作,添加和删除会很快。如果有多个线程检查 concurrentHashMap 大小,那么检查 hashmap 大小呢?是否还需要同步关键字:如下:
java - 既然我们有 ConcurrentHashMap,我们还需要 Hashtable 吗?
Java 的java.util.Hashtable
功能与java.util.HashMap
. 它们的主要区别在于Hashtable
线程安全和同步,而HashMap
不是。从 JDK5 开始,我们就有ConcurrentHashMap
了可用于多线程上下文的。它的性能比Hashtable
. 那么我们有什么理由Hashtable
在未来使用呢?
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不能卸载生成的类?
java - ConcurrentHashMap 锁定
我在某处读到ConcurrentHashMap
,整个地图对象没有被锁定,而是在地图的一部分上进行了锁定。
有人可以详细说明锁定何时出现吗?
在阅读地图时没有涉及锁定但在更新它时只使用锁定是对的吗?
java - ConcurrentHashMap:避免使用“putIfAbsent”创建额外的对象?
我正在为多线程环境中的键聚合多个值。密钥是事先不知道的。我以为我会做这样的事情:
我看到的问题是,每次运行此方法时,我都需要创建一个新的 an 实例ArrayList
,然后我将其丢弃(在大多数情况下)。这似乎是对垃圾收集器的无理滥用。有没有更好的、线程安全的方法来初始化这种结构而不必使用synchronize
该record
方法?我对让该方法不返回新创建的元素的决定感到有些惊讶putIfAbsent
,并且除非需要(可以这么说),否则缺乏一种推迟实例化的方法。
java - 并发 hashmap size() 方法复杂度
我想知道size()
调用的方法是否与通常的 HashMap 方法ConcurrentHashMap
具有相同的复杂性。size()