我正在使用JDK 7,SQLite,并在我的项目中使用了Guava.
我有一个少于100个条目的TreeMap,由一个"工作"线程每秒更新数百次.我现在正在编写一个组件(另一个线程 - "DB线程"),它将每隔5或10秒将映射写入我的数据库.
我知道我需要制作地图的深层副本,以便数据库线程将使用快照,而工作线程继续其工作.我正在查看Guava Maps类,它有许多制作副本的方法,但我不确定它们是否满足我在需要副本时在地图上同步的需要.有没有一种方法可以满足我的需求,或者我应该编写一个同步块来制作我自己的深层副本?
这取决于你想要的:
如果你想要一个完全并发的地图(在添加时不能读取等等)你应该使用JSlain在我之前所说的内容.
如果您想要的只是地图的CURRENT快照,并且您不关心是否只要您使用的迭代器不会更改地图.
这将为每次迭代提供一个新的独立迭代器,因此即使真实地图被更改,您也不会注意到它.
您将在下次更新中看到它(在您的情况下为5秒).
| 归档时间: |
|
| 查看次数: |
1197 次 |
| 最近记录: |