【发布时间】:2009-01-17 23:27:37
【问题描述】:
Prevayler 保证所有写入(通过其事务)都是同步的。但是阅读呢?
如果不使用显式同步(在用户代码中),脏读是可能的吗?
如果业务对象被读取为:
// get the 3rd account
Accont account = (Bank)prevayler.prevalentSystem().getAccounts().get(2);
?
如果是这样,哪些同步策略对用户代码有利?
(假设一个业务对象 A 包含一个业务对象 Bs 的集合),
- 使用同步集合(A 中的 B),例如 来自 java.util.concurrent 包?
- 将外部事务的集合读取与 集合写入事务内部,例如使用 围绕读写的“同步(集合)”代码?
【问题讨论】:
-
不能真正回答-它应该是事务安全的,但我实际上使用它有点不同(数据完整性不是那么重要,只是访问速度非常快),所以我没有t 非常注意这些细节。对不起。
-
@Steve,谢谢。我要再次阅读它的代码:)
标签: java concurrency synchronization persistence prevayler