Rob*_*win 3 java synchronization bidirectional apache-commons
使用apache commonds bidimap时,如何处理同步。例如,如果我创建如下所示的地图
BidiMap oneWay = new DualHashBidiMap();
BidiMap theOtherWay = oneWay.inverseBidiMap();
因此,如果我要向上述变量之一添加/访问/删除键/值对,我需要同步两者(线程同步)。如果我需要这样做,似乎我不会通过使用 2 张地图实现此功能而获得任何好处。
感谢您花时间查看此问题。
通过同步,您是指从不同的线程访问这两个,还是您认为如果将键/值对添加到逆映射中,您还需要将其添加到前向映射中?如果是后者,则不必这样做。逆映射是正向映射的视图,因此更改一个总是会影响另一个。
如果您问的是线程同步……好吧,我不确定公共集合为此提供了什么。我的建议是使用Guava及其BiMap接口而不是 apache commons。除了使用泛型之外,Guava 还有一个Maps.synchronizedBiMap(BiMap)方法来创建一个同步包装器。
| 归档时间: |
|
| 查看次数: |
2125 次 |
| 最近记录: |