如何安全地将元素放入
ConcurrentMap <String, Set<Integer>> cmap = new ConcurrentMap<String, Set<Integer>>();
我在我的并发地图上操作如下:
Set<Integer>
Integer
Set<Integer>
值。答案 0 :(得分:3)
ConcurrentMap有一种方法可以在缺少时初始化地图值。我假设内部的集合应该是线程安全的:
$(".common-class").click(function(){
//action taken
});
在lambda之前:
Set<Integer> set = cmap.computeIfAbsent(key,(k)-> Collections.newSetFromMap(new ConcurrentHashMap<>()));
set.add(value);
答案 1 :(得分:0)
在并发环境中,您可能应该使用并发映射和并发集。例如 ccg: 'E38000016',
nuts: 'UKD36' } } }
events.js:136
throw er; // Unhandled 'error' event
^
Error: socket hang up
at createHangUpError (_http_client.js:330:15)
at TLSSocket.socketOnEnd (_http_client.js:423:23)
at TLSSocket.emit (events.js:164:20)
at endReadableNT (_stream_readable.js:1054:12)
at _combinedTickCallback (internal/process/next_tick.js:138:11)
at process._tickCallback (internal/process/next_tick.js:180:9)
和ConcurrentHashMap
。 Collections.newSetFromMap(new ConcurrentHashMap<>())
方法可以防止ConcurrentHashMap.putIfAbsent()
机制的竞争条件。
所以代码看起来像
if(!containsKey) put