15

ehcache 默认支持多线程还是需要任何配置更改?在使用 Ehcache 对我的应用程序进行多线程处理时,我发现 DB 命中计数实际上在增加,即,尽管我的缓存都是单例,但没有可用于所有线程的全局缓存。有什么建议么?

4

2 回答 2

14

这可能有助于回答您的问题,来自常见问题解答

从缓存中检索后修改元素值是否线程安全?

请记住,缓存元素中的值可以从多个线程全局访问。修改值本质上不是线程安全的。检索一个值、删除缓存元素然后重新插入该值会更安全。

(重点由我添加)

于 2009-06-02T12:53:19.293 回答
2

官方文档看来,它是专门构建和测试的,可以在高并发访问下运行良好,只要您不Element从多个线程进行修改。

但是,当然,这并不意味着使用 Ehcache 会使代码的其他部分成为线程安全的。如果您从多个线程中获取相同的值(使用相同的键),则该实例可能是共享的,您需要在修改它之前知道自己在做什么。Best 似乎使用不可变对象(如字符串)作为缓存值。

于 2015-10-23T08:44:30.013 回答