Comment Bloquer et d'attendre l'aide de AtomicBoolean

Je suis à la recherche d'un moyen de faire une pause d'un Thread.

J'ai commencé avec affectivement à l'aide d'un indicateur booléen (appelé 'pause'), et de l'envelopper dans une case avec une boucle while (pause).

À l'intérieur de la boucle while, il y a un Thread.wait() de bloquer l'exécution.

J'ai été à la recherche à la AtomicBoolean, qui semble faire l'affaire en dehors de il ne bloque pas.

Est-il une alternative ou une version étendue de AtomicBoolean qui a un bloc de la méthode ?

c'est à dire quelque chose comme AtomicBoolean.getFalse() de AtomoicBoolean.get(false)?

Ils ont un Blocage de la File d'attente, donc un Blocage de la valeur.

Configuration actuelle est :

while (paused.get()) {
        synchronized (paused) {
            try {

                paused.wait();
            } catch (Exception e) {
            }

            paused.notify();
        }
    }

avec

public void pause() {
    if (paused.compareAndSet(false, true)) {
        synchronized (paused) {
            paused.notify();
        }
    }

}


public void resume() {
    if (paused.compareAndSet(true, false)) {
        synchronized (paused) {
            paused.notify();
        }
    } 
}

OriginalL'auteur Ben | 2011-11-21