Dav*_*d P 1 java concurrency hashmap
我有一块看起来像我正在尝试并行化的Java代码:
value = map.get(key);
if (value == null) {
value = new Value();
map.put(key,value);
}
value.update();
Run Code Online (Sandbox Code Playgroud)
我想阻止任何其他线程使用该特定键访问地图,直到value.update()调用后,即使键不在键集中.应允许使用其他密钥访问.我怎么能实现这个目标?
简短的回答是,如果不同步整个块,就没有安全的方法.您可以使用java.util.concurrent.ConcurrentHashMap,有关更多详细信息,请参阅此文章.基本思想是使用ConcurrentHashMap.putIfAbsent而不是正常put.
| 归档时间: |
|
| 查看次数: |
3125 次 |
| 最近记录: |