1

我有一个后续问题: EJB 3.1 容器管理并发与同步

锁是仅防止对持久性上下文中的数据的并发访问等,还是还为私有字段提供同步?

4

1 回答 1

1

最容易想象java.util.concurrent.ReadWriteLock容器正在调用的 per-beanlock()以及在orunlock()上的方法调用,具体取决于为方法配置的内容。因此,实例变量受到保护。readLock()writeLock()@Lock

但是,请注意容器管理的@PersistenceContext字段不是“共享”状态,因为容器实际上注入了一个代理对象。该代理上的每个方法调用EntityManager都将委托给每个事务EntityManager。由于事务不是跨线程共享的,因此即使 bean@ConcurrencyManagement(BEAN)在没有其他同步的情况下使用也是线程安全的。

于 2012-05-17T12:12:49.823 回答