gpt4 book ai didi

java - 如何使一个功能与其他功能同步,但其他功能之间不同步?

转载 作者:行者123 更新时间:2023-12-01 22:34:57 25 4
gpt4 key购买 nike

我有函数a()、b()、c()。而且我想让a()执行与b()和c()执行同步,但不同步b()和c()(只能有a()执行;b()和c()并行执行,但不能有a()和b()并行执行或者a()和c()并行执行)这个问题用Java可以解决吗?

最佳答案

您可以这样做:

private final ReadWriteLock rwlock = new ReentrantReadWriteLock();

void a() {
rwlock.writeLock().lock();
try { whatever(); } finally { rwlock.writeLock().unlock(); }
}

void b() {
rwlock.readLock().lock();
try { whatever(); } finally { rwlock.readLock().unlock(); }
}

void c() {
// same as b()
}

当然,这假设所有三个方法都在同一个类中,每个类都有一个该锁的实例,等等。如果情况并非如此,请根据您的具体使用需要调整可见性/声明/等案例。

关于java - 如何使一个功能与其他功能同步,但其他功能之间不同步?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/26994080/

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