Prevayler 保证所有写入(通过其事务)都是同步的。但是阅读呢?
如果不使用显式同步(在用户代码中),脏读是可能的吗?
如果业务对象被解读为:
// get the 3rd account
Accont account = (Bank)prevayler.prevalentSystem().getAccounts().get(2);
?
如果是这样,哪些同步策略对用户代码有好处?
(考虑一个业务对象 A 包含业务对象 Bs 的集合),
- 使用同步集合(A 内的 B),例如来自 java.util.concurrent 包?
- 同步集合读取外部事务与集合写入事务内部,例如在读写周围使用“同步(集合)”代码?