我已经开始阅读关于单例会话bean和用于使用容器管理的并发的注释。与单纯使用'synchronized'关键字相比,我没有看到这个好处,所以我怀疑有一些重要的东西我错过了。从书“Enterprise JavaBeans 3.1”由Rubinger &伯克认为这个例子中,奥莱理:EJB 3.1容器管理并发与同步
@javax.ejb.Lock(javax.ejb.LockType.READ)
public String concurrentReadOnlyMethod(){...}
@javax.ejb.Lock(javax.ejb.LockType.WRITE)
public void allowOnlyOneWriteAtATimeMethod(String stringToSet){...}
这怎么比读情况下,所有toghether省略了注释,并在写的情况下使用关键字更好,像这样:
public String concurrentReadOnlyMethod(){...}
public synchronized void allowOnlyOneWriteAtATimeMethod(String stringToSet){...}
如果我理解正确,我可以像这样非正式地说:给定一个包含上述两个方法的类,使用容器管理并发性,语义是“只要没有写入就允许并发读取”。对比例的语义是“允许并发读取,也可以在写入时进行,但一次只能写入一个线程”。 –
是的,它总结得非常好。 –
您可以给我一个EJB 3.1中READ/WRITE锁定语义的参考吗?即使在规范中我也找不到它。 – illEatYourPuppies