使用 ConcurrentHashMap,何时需要同步?
2022-09-03 08:57:31
我有一个 ConcurrentHashMap,我在其中执行以下操作:
sequences = new ConcurrentHashMap<Class<?>, AtomicLong>();
if(!sequences.containsKey(table)) {
synchronized (sequences) {
if(!sequences.containsKey(table))
initializeHashMapKeyValue(table);
}
}
我的问题是 - 是否没有必要做额外的
if(!sequences.containsKey(table))
检查同步块内部,以便其他线程不会初始化相同的哈希映射值?
也许检查是必要的,我做错了?我正在做的事情似乎有点愚蠢,但我认为这是必要的。