爪哇大师,
目前我们有一个经常HashMap<String,SomeApplicationObject>被读取和偶尔修改的文件,我们遇到了在修改/重新加载期间,读取操作返回的问题,null这是不可接受的。
为了解决这个问题,我有以下选项:
A. 使用ConcurrentHashMap
这看起来像是第一个选择,但我们正在谈论的操作是reload()- 意味着clear()后跟replaceAll()。因此,如果Map阅读 postclear()和 prereplaceAll()它返回 null 这是不可取的。即使我synchronize这并不能解决问题。
B. 基于 ReentrantReadWriteLock创建另一个实现
我将在操作Write Lock前创建获取reload()。这似乎更合适,但我觉得必须有一些可用的东西,我不需要重新发明轮子。
最好的出路是什么?
编辑是否已经有任何具有此类功能的收藏?