如何使用原子布尔值阻止和等待
2022-09-02 12:06:06
我正在寻找一种暂停线程的方法。
我从情感地使用布尔标志(称为“暂停”)开始,然后用一段时间循环(暂停)包装支票。
在 while 循环中,有一个用于阻止执行。Thread.wait()
我一直在研究AtomicBoolean,它似乎除了不阻止之外还做了伎俩。
有没有具有块方法的AtomicBoolean的替代或扩展版本?
即 类似于 ?AtomicBoolean.getFalse()
AtomoicBoolean.get(false)
它们具有阻塞队列,因此为“阻塞”值。
当前设置为:
while (paused.get()) {
synchronized (paused) {
try {
paused.wait();
} catch (Exception e) {
}
paused.notify();
}
}
跟
public void pause() {
if (paused.compareAndSet(false, true)) {
synchronized (paused) {
paused.notify();
}
}
}
public void resume() {
if (paused.compareAndSet(true, false)) {
synchronized (paused) {
paused.notify();
}
}
}