请建议哪些地图可用于缓存。
我的用例是一个高度多线程的服务器,我想同步put map但是get map不同步。
我的期望是:如果发生,那么立即获取应该有最新的更新值。
对于我们的用例,在我们现在正在执行的put期间,整个map可能不需要同步,只有在尝试加载相同的值时才应该同步它。
答案 0 :(得分:1)
ConcurrentHashMap
是正确的答案,因为从多个线程同时使用是安全的。
或者,如果您可以添加库依赖项,Guava's Cache
可能就是您要查找的内容。
所做的是使用HashMap
或其他线程不安全的结构而没有在每个操作上进行适当的同步,包括读取和变异。这根本不是线程安全的,并且可能在terrible ways中失败。