![]() |
1
1
首先,由于没有为您的bean指定并发管理,它可以归结为默认的“容器”。 来自EJB3.1规范:
然后,容器并发管理需要锁类型的方法级规范。一旦不存在,则默认的“写入”适用于:
上面的内容意味着对bean方法的访问必须是同步的,甚至可能比实际需要的还要多。您可以为只读方法(get)设置“Read”锁定类型,以允许并发读取访问。 |
![]() |
2
0
考虑一下,如果有一个带有写锁的put操作,则意味着整个“缓存”被阻塞,因此无论密钥是否不同,都不可能并行执行get或put操作。 如果您的缓存实现是一个并发映射,则可以在不锁定的情况下使用它。 如果您对缓存有更多要求,我将使用Infinispan,它提供了更好的性能。这里的缓存可以是本地的,也可以分布在集群中。 |
![]() |
3
0
读完这个 blog from Adam Bien 我现在通过以下方式改进了代码:
例子:
我认为这是现在更正确的实现。 |