将要更新的缓存,比如为一个Map:oldMap,声明一个代理proxy来代理oldMap的新增和删除方法(Proxy.newProxyInstance),当业务修改oldMap时,定义一个锁reentrantlock,在invoke方法中判断修改oldMap的时候,new一个新的Map:newMap(之后把oldMap的值赋给newMap:newMap.putAll(oldMap)),所有修改的操作都调用newMap的invoke方法,更新完成之后返回newMap更新完成之后的值,更新过程不影响oldMap