在ConcurrentHashMap(put()
,remove()
等)上執行所有非retreival操作是否需要封裝在synchronized(this)
塊中?我知道所有這些操作都是線程安全的,那麼這樣做有沒有真正的好處/需要?唯一使用的操作是put()
和remove()
。ConcurrentHashMap需要包裝在同步塊中嗎?
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);
}
...
}