gpt4 book ai didi

java - 同步 SynchronizedMap 的性能开销

转载 作者:太空宇宙 更新时间:2023-11-04 14:38:53 27 4
gpt4 key购买 nike

如果我同步 SynchronizedMap 会影响性能吗?

例如:

private static Map<Integer, Integer> intMap= Collections.synchronizedMap(new HashMap<Integer, Integer>());

public static int doSomething(int mapId) {
synchronized(intMap) {
Integer id = intMap.get(mapId);
if (id != null) {
//do something
}
if (id == null) {
intMap.put(mapId);
}
}
}

我必须在上述方法中显式同步,因为它是synchronizedMap 上的操作组合。既然我无论如何都必须同步,那么使用普通的 hashmap 而不是使用 synchronizedMap 更好吗?

如果我同步synchronizedMap,会出现性能问题吗?

最佳答案

是的,性能会受到影响。它可能不多,因为 JVM 能够根据使用情况优化这些锁,但它永远存在。

如果您已经在该对象上使用了 synchronized 关键字,则没有理由使用同步映射,除非您程序的其他部分有需要的代码同步 map 。

关于java - 同步 SynchronizedMap 的性能开销,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/25212272/

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