下面是两种方法,都创建 concurrentHashMap 的实例,我的理解是方法 2 是线程安全的,但方法 1 不是。但是我正在与同事和他交谈,因为两者都在创建 concurrentHashMap 的实例不应该接近 1 是也是线程安全的吗?
方法一:
private static final Map<key, value> map = new ConcurrentHashMap<key, value>();
方法二:
private static final ConcurrentHashMap<key, value> concurrentHashMap = new ConcurrentHashMap<key, value>();
如果对此有任何澄清,我们将不胜感激。
最佳答案
在这两种情况下,您都在创建一个 ConcurrentHashMap
,因此线程安全性完全相同。
ConcurrentHashMap
实现了 Map
接口(interface),这是您在示例 1 中调用的接口(interface)。但这对实例化的底层对象没有影响。
关于java - map 和 concurrentHashMap 的线程安全,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/26128548/