【发布时间】:2015-06-19 02:31:26
【问题描述】:
我有一个从多个线程填充的 ConcurrentHashMap。
private static Map<DataCode, Long> errorMap = new ConcurrentHashMap<DataCode, Long>();
public static void addError(DataCode error) {
if (errorMap.keySet().contains(error)) {
errorMap.put(error, errorMap.get(error) + 1);
} else {
errorMap.put(error, 1L);
}
}
我上面的addError 方法是从填充errorMap 的多个线程调用的。我不确定这是否是线程安全的?我在这里做错什么了吗?
任何关于它为什么可以跳过更新的解释都会帮助我更好地理解。
【问题讨论】:
标签: java multithreading thread-safety concurrenthashmap