gpt4 book ai didi

java - 是否可以在少数线程但不是所有线程之间共享变量?

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

我正在从第 3 方 API 中提取数据,我想知道是否可以在某些线程(但不是所有线程)之间共享变量。

示例:

我有 2 个用户,我为每个用户启动 2 个线程。假设用户 1 的线程 A、B 和用户 2 的线程 C、D。现在我需要某种标志来通知线程何时停止(假设已读取的页面总数,这因用户而异) 。问题是,必须为属于该特定用户的 2 个线程同步该标志,而不是其他线程。我无法修改用户实体。创建 2 个标志是不可能的,因为这只是一个示例,实际上可能有多个用户提取他们的数据。

这可能吗?如果是,那么如何?

感谢您的宝贵时间。

最佳答案

当您为用户创建线程时,还要创建需要共享的标志并将其传递给线程,以便他们可以使用它并共享信息.

类似于:

AtomicBoolean userFlag = new AtomicBoolean(false);
Runnable a = new UserRunnable(userFlag);
Runnable b = new UserRunnable(userFlag);
// run a and b

UserRunnable:

public class UserRunnable implements Runnable {
private final AtomicBoolean flag;
// + constructor

@Override
public void run() {
// use the flag
}
}

关于java - 是否可以在少数线程但不是所有线程之间共享变量?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/38934799/

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