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

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


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

最佳答案

您可以嵌套它们:

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


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

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

10-09 09:25