Я ищу способ приостановить поток.
Я начал с аффективного использования логического флага (называемого «приостановлено») и заключил проверку в цикл 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();
}
}
}