JAVA如何对同一代码段进行两次锁定?

问题描述 投票:1回答:1

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

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

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

java locking synchronized
1个回答
1
投票

你可以嵌套它们:

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

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

© www.soinside.com 2019 - 2024. All rights reserved.