我正在寻找一种暂停线程的方法。
我从有效地使用布尔标志(称为“暂停”)开始,并使用 while 循环(暂停)包装检查。
在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();
}
}
}