首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >我可以访问Java中的同步块使用的锁吗?

我可以访问Java中的同步块使用的锁吗?
EN

Stack Overflow用户
提问于 2016-04-06 07:48:12
回答 1查看 78关注 0票数 1

有一个简单的列表:

代码语言:javascript
复制
private final List<Item> lst = new ArrayList();

当我需要同步时,我经常执行以下操作:

代码语言:javascript
复制
synchronized (lst) {
    // Some code
}

现在,我需要使用Condition创建一个Lock.newCondition()对象,我可以访问synchronized{}使用的底层锁来创建我的条件,还是应该删除同步块并使用自定义的Lock对象?

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2016-04-06 07:56:10

如果您需要一个条件对象,这是一个明确的迹象,表明内部锁定对您来说是不够的。你需要用

代码语言:javascript
复制
    Lock lock = new ReentrantLock();
    Condition condition = lock.newCondition();

不管怎么说,如果你担心性能问题,那就不是现代虚拟机的问题了。显式锁定与内部锁定一样有效。

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

https://stackoverflow.com/questions/36444684

复制
相关文章

相似问题

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