我有一个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值?
也许检查是必要的,我做错了?我正在做的事似乎有点傻,但我认为这是必要的.