【问题标题】:Ehcache & MultiThreadingEhcache 和多线程
【发布时间】:2009-06-02 11:01:53
【问题描述】:

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

【问题讨论】:

    标签: java multithreading ehcache


    【解决方案1】:

    这可能有助于回答您的问题,来自the FAQ

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

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

    (重点由我添加)

    【讨论】:

    【解决方案2】:

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

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

    【讨论】:

      猜你喜欢
      • 2016-09-19
      • 1970-01-01
      • 2018-01-21
      • 1970-01-01
      • 1970-01-01
      • 2011-06-23
      • 1970-01-01
      • 2016-07-22
      • 1970-01-01
      相关资源
      最近更新 更多