作者热门文章
- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我有一个基于 Spring 的 Java 应用程序,我的目标是在内存中缓存一堆对象以提高性能,并使用计划作业定期从数据源更新该缓存。
如果我将该映射存储在单例 Spring bean 中,是否有一种线程安全的方法可以在运行时更新该映射而不使访问/服务方法同步?在调用 setMap(myNewMap) 时,是否可以在单例对象上执行不同步的临时方法 block ?有必要吗?
class MySingletonCache {
private Map<String, Object> myMap;
// Called periodically from scheduled job
public void setMap(Map<String, Object> myMap) {
this.myMap = myMap;
}
// High concurrency, cannot make this synchronous
public Object findById(String id) {
return this.myMap.get(id);
}
}
最佳答案
您可以实现ReadWriteLock为了这个特定的目的。
关于java - 在运行时通过预定作业的 setter 线程安全地更新单例的依赖关系,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/41336871/
我是一名优秀的程序员,十分优秀!