有时,我们需要更新一个field
entry.value
。
线程安全的方法是构造一个新的entry.value
和
使用put
方法进行更新。也就是说,我需要做深刻的复制
虽然我只做了一些修改,但仍然具有原始价值。
我可以像
那样进行此更新map[key].field = fieldValue;
答案 0 :(得分:1)
哈希映射安全地返回一个条目,但是字段的分配超出了地图的范围。所以,你应该在这里做一些线程安全的事情。您的代码相当于:
Entry entry = map[key];
entry.field = fieldValue;
显然,字段赋值运算符对地图一无所知。
答案 1 :(得分:0)
可能需要锁定条目本身。如果它只是一个赋值,那么不稳定。