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