|
1
2
最简单、最轻松的方法是切换地图,而不是替换地图内容。是否使用
这样可以确保地图始终处于正确的状态,并允许您提供快照。但它不能保护您免受其他并发性问题的影响,因此如果出现诸如丢失更新之类的问题,您将需要进一步的代码(尽管
|
|
2
2
与CAS和
此映射可以是并发的,但对于“批量更新”,它是只读的。然后在
|
|
|
3
0
因为这张地图很小,可能就足够用了
否则,读取和更新将不同步,并导致竞争条件。 |
|
|
4
0
扩展您选择的映射实现并添加同步方法:
当然,你总是可以
|
|
|
5
0
由于客户机代码维护对bean的引用而不是映射,因此替换值(即整个映射)似乎是最简单的解决方案。 除非有任何显著的性能问题(尽管使用锁定可能会执行得更糟,而且不太可预测,除非映射图很大),否则我会在需要更高级的知识之前尝试。
|
|
|
6
0
|
|
|
ron burgundy · 获取-释放语义是否跨线程传递?[副本] 1 年前 |
|
|
H3007 · 并发运行python子进程似乎不是并发的 2 年前 |
|
|
The Oddler · TVar会阻止读取直到更改吗? 2 年前 |
|
|
Wang Tuma · 使用信号量的c++并发问题:按顺序打印 2 年前 |
|
|
Marcel Batista · 在不同线程中更新密钥时的字典线程安全 2 年前 |
|
|
rico · 当volatile关键字真的是必要的? 2 年前 |