首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >ConcurrencyManagementType.BEAN与LockType.READ的差异?

ConcurrencyManagementType.BEAN与LockType.READ的差异?
EN

Stack Overflow用户
提问于 2013-04-02 20:34:20
回答 1查看 4K关注 0票数 1

比较一下这个Java企业javabean:

代码语言:javascript
复制
@Singleton
@ConcurrencyManagement(ConcurrencyManagementType.BEAN)
public class BMC {}

..with这个豆:

代码语言:javascript
复制
@Singleton
@ConcurrencyManagement(ConcurrencyManagementType.CONTAINER)
@Lock(LockType.READ)
public class CMC {}

由于容器管理的并发性是默认的,所以可以重写第二个bean,如下所示:

代码语言:javascript
复制
@Singleton
@Lock(LockType.READ)
public class CMC {}

因此,这当然让我感到好奇。有什么关系?我可以像在我的类中一样,将容器管理的并发性全部关闭,或者使用容器管理的并发性,但是使用读锁注释类,就像我在CMC类上所做的那样。只要我没有在类声明的某个地方放入写锁,CMC类实际上已经关闭了其容器管理的并发控制。

可以说,我所演示的两个构造之间存在技术上的差异吗?为什么一个构造会比另一个更好或者更好,有什么争论吗?

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2013-04-15 23:49:47

根据LockType.WRITE javadoc,使用LockType.READ确实会创建一个锁。此锁允许执行具有读锁的其他方法,但阻止任何具有写锁的方法在释放读锁之前运行。

一定会有一些与创建读取锁相关的开销(可能最小且不明显),除非使用容器管理的并发性,否则不会遇到这种开销。

哪个更好,对于不同的人、不同的环境或不同的优先次序,可能有不同的答案。

票数 3
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/15773840

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档