实现安全的缓存更新方法

来源:互联网 发布:mooc字幕组知乎 编辑:程序博客网 时间:2024/06/05 18:57
将要更新的缓存,比如为一个Map:oldMap,声明一个代理proxy来代理oldMap的新增和删除方法(Proxy.newProxyInstance),当业务修改oldMap时,定义一个锁reentrantlock,在invoke方法中判断修改oldMap的时候,new一个新的Map:newMap(之后把oldMap的值赋给newMap:newMap.putAll(oldMap)),所有修改的操作都调用newMap的invoke方法,更新完成之后返回newMap更新完成之后的值,更新过程不影响oldMap
原创粉丝点击