ConcurrentHashMap 是否需要包装在同步块中?
ConcurrentHashMap(等)上的所有非回收操作是否需要包装在一个块中?我知道所有这些操作都是线程安全的,那么这样做有什么真正的好处/需要吗?使用的唯一操作是 和 。put()
remove()
synchronized(this)
put()
remove()
protected final Map<String, String> mapDataStore = new ConcurrentHashMap<String, String>();
public void updateDataStore(final String key, final String value) {
...
synchronized (this) {
mapDataStore.put(key, value);
}
...
}