function myFunction() { $("bloader").fadeOut(2000); myVar = setTimeout(showPage, 2000); }
我有上面的代码。在另一个线程中,我可能正在从workObjectMap
中删除。我想要一个原子函数,如果存在键,该原子函数会修改值,如果不存在,它将放入键/值。
在我当前的代码中,删除有可能发生在computeIfPresent
和putIfAbsent
之间,以便将已经添加到地图的同一项目再次添加。 / p>
如何在这两个方法调用之间阻止任何删除? (computeIfPresent
和putIfAbsent
)
答案 0 :(得分:4)
workObjectMap.compute(key, (k,v) -> {
if (v == null) return new WorkObjectValue(memberIdSet, memberPositionSet);
v.memberIdSet.addAll(memberIdSet);
v.memberPositionSet.addAll(memberPositionSet);
return v;
});