キーが現在どの値にもマップされていない場合にのみ、キーのオブジェクトをアトミックに設定する必要があるロジックを実装する必要があります。私はこれを自分で実装できますが、すでにどこかで行われている場合は、車輪を再発明したくありません.
質問する
121 次
2 に答える
5
ConcurrentHashMap
メソッドがputIfAbsent
あります。必要なものかもしれません。そしてdogbaneが指摘したように、これは実際には base interfaceConcurrentMap
で定義されているので、ConcurrentSkipListMap
それもそうです。
于 2012-05-08T14:45:59.497 に答える
4
ConcurrentHashMap.putifAbsentを使用する
指定されたキーがまだ値に関連付けられていない場合は、指定された値に関連付けます。これは、
if (!map.containsKey(key))
return map.put(key, value);
else
return map.get(key);
ただし、アクションはアトミックに実行されます。
于 2012-05-08T14:45:59.863 に答える