java - JAVA如何给同一个代码段赋予两个锁?

标签 java locking synchronized

我的代码中有两个锁——lock1和lock2,我想给一个代码段这两个锁,如下所示:

synchronized(lock1 || lock2) {
    // code
}

这意味着如果lock1或lock2忙,该代码段将等待直到两个锁都空闲。我怎样才能做到这一点?谢谢。

最佳答案

您可以嵌套它们:

synchronized (lock1) {
    synchronized (lock2) {
        //code
    }
}

参见this answer与嵌套锁定相关的可能风险。

关于java - JAVA如何给同一个代码段赋予两个锁?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/54702511/

相关文章:

java - 如何解压缩 lzo_deflate 文件?

java - 方法 setView 已弃用

java - 同步锁由最短等待线程获取

django - 如何处理 Django-PostgreSQL 锁

java - 无法理解类对象

java - 扫描仪拾取垃圾值?

java - 如果一个同步方法调用另一个非同步方法,非同步方法是否有锁

java - 为什么代码遵循同步?

java - 多线程将相同的内容写入同一个文件?

java - Birt Viewer 查看 Servlet 源代码