gpt4 book ai didi

java - 同步重叠的方法集

转载 作者:行者123 更新时间:2023-11-30 07:00:21 26 4
gpt4 key购买 nike

想象一个具有三个方法的 Java 类:

  1. master()
  2. foo()
  3. bar()

我想同步 master()foo() 以及 master()bar(),没有同步 foo()bar()。可以为每对同步方法设置一个单独的锁,但我的实际代码有三个以上的方法,所以我希望有一种方法可以在没有这么多锁对象的情况下做到这一点。

最佳答案

您实质上是在描述一个 ReadWriteLock .每两个方法都允许同时运行(一个“读锁”),除了 master(),它排除了所有其他方法(一个“写锁”):

public class MyClass {
private final ReadWriteLock rwLock = new ReentrantReadWriteLock();
private final Lock r = rwLock.readLock();
private final Lock w = rwLock.writeLock();

public void master() {
w.lock();
// do stuff
w.unlock();
}

public void foo() {
r.lock();
// do stuff
r.unlock();
}

public void bar() {
r.lock();
// do stuff
r.unlock();
}
}

关于java - 同步重叠的方法集,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30698854/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com