ehcache默认情况下是否支持多线程,或者是否需要任何配置更改?在使用Ehcache对我的应用程序进行多线程处理时,我发现DB命中计数实际上正在增加,也就是说,尽管我的缓存都是单例的,但没有全局缓存可供所有线程使用。有什么建议吗?
发布于 2009-06-02 12:53:19
这可能有助于回答你的问题,来自the FAQ
从缓存中检索后修改元素值是否线程安全?
请记住,缓存元素中的值可以从多个线程全局访问。修改该值本身就不是线程安全的。检索一个值,删除缓存元素,然后重新插入该值会更安全。
(由我补充强调)
发布于 2015-10-23 16:44:30
从official documentation来看,它是专门构建和测试的,只要您不从多线程修改Element,它就可以在高并发访问下很好地运行。
但是,当然,这并不意味着使用Ehcache可以使代码的其他部分线程安全。如果您从多个线程获取相同的值(使用相同的键),则实例可能是共享的,您需要在修改它之前知道自己在做什么。Best似乎使用像字符串这样的不可变对象作为缓存值。
https://stackoverflow.com/questions/938926
复制相似问题