相关疑难解决方法(0)

使用ConcurrentHashMap,何时需要同步?

我有一个ConcurrentHashMap,我在其中执行以下操作:

sequences = new ConcurrentHashMap<Class<?>, AtomicLong>();

if(!sequences.containsKey(table)) {
    synchronized (sequences) {
        if(!sequences.containsKey(table))
            initializeHashMapKeyValue(table);
    }
}
Run Code Online (Sandbox Code Playgroud)

我的问题是 - 是否没有必要做额外的事情

if(!sequences.containsKey(table))
Run Code Online (Sandbox Code Playgroud)

检查synschronized块内部,以便其他线程不会初始化相同的hashmap值?

也许检查是必要的,我做错了?我正在做的事似乎有点傻,但我认为这是必要的.

java concurrency concurrenthashmap

13
推荐指数
2
解决办法
1万
查看次数

标签 统计

concurrency ×1

concurrenthashmap ×1

java ×1