"ConcurrentHashMap.putAll(...)"是原子的吗?

Jap*_* D. 8 java atomic concurrenthashmap

方法ConcurrentHashMap.putAll(Map)应该是原子的吗?

我在文档中找不到它,并且在ConcurrentMap界面中没有提到它,所以我猜答案是否定的.我要求它确定,因为如果该操作不是原子的,那就没有意义了.

如果它不是原子的,那么支持多个项目的原子插入的最佳方法是什么?回到好老同步?

rua*_*akh 10

这不是原子的,不是.根据课程文件:

对于诸如putAll和的聚合操作clear,并发检索可能反映仅插入或删除某些条目.

要将其原子化,你必须使用synchronized,是的.没有非阻塞的方法来做到这一点.