【问题标题】:Differences between @AccessTimeout(value = 0) and @Lock(LockType.WRITE)@AccessTimeout(value = 0) 和 @Lock(LockType.WRITE) 的区别
【发布时间】:2015-03-21 07:07:49
【问题描述】:

正如我在Java 7 EE 入门中所读到的:

@Lock(LockType.WRITE):与独占锁关联的方法将 在方法的处理完成之前不允许并发调用 完成。

@AccessTimeout 值为 0 表示不支持并发访问 允许。这将导致抛出 ConcurrentAccessException if a 客户端调用当前正在使用的方法。

那么...有什么区别?这两个注释都禁用了并发调用,我看不出它们之间有任何区别。有没有什么情况可以一起使用?

【问题讨论】:

    标签: java jakarta-ee timeout ejb concurrentmodification


    【解决方案1】:

    第一个方法将阻塞后续调用者,直到当前调用者完成它的调用。第二个,@AccessTimeoutvalue 如果同时有多个调用会抛出异常。差别很大。

    【讨论】:

    • 我今天花了太多时间阅读这本书,我停下来思考,谢谢。
    • 如果您运行一些代码、使用它并进行调试,您会学得更好。一个好的开始可能是 Quickstart Wildfly 项目 (github.com/wildfly/quickstart)
    • 谢谢,首先我想在开始编码之前阅读有关 EJB 的整章并理解所有内容,但结果发现没有什么可理解的。这只是我的疏忽。 :)
    • 大多数时候教科书描述的东西从代码本身就很明显
    猜你喜欢
    • 2016-02-27
    • 1970-01-01
    • 2014-04-24
    • 1970-01-01
    • 2023-03-03
    • 2014-05-18
    • 2017-02-28
    • 2015-10-12
    • 1970-01-01
    相关资源
    最近更新 更多