Le sommeil et vérifier jusqu'à ce que la condition est vraie

Est-il une bibliothèque en Java qui est le suivant? Un thread doit à plusieurs reprises sleep pour les x millisecondes jusqu'à ce qu'une condition est vraie ou le temps maximum est atteint.

Cette situation se produit généralement quand un test attend une condition pour devenir vrai. La condition est influencé par une autre thread.

[EDIT]Juste pour la rendre plus claire, je veux le test d'attendre que X ms avant qu'il tombe en panne. Il ne peut pas attendre longtemps pour qu'une condition devienne vraie. Je suis l'ajout d'un exemple artificiel.

class StateHolder{
    boolean active = false;
    StateHolder(){
        new Thread(new Runnable(){
            public void run(){
                active = true;
            }
        }, "State-Changer").start()
    }
    boolean isActive(){
        return active;
    }
}


class StateHolderTest{
    @Test
    public void shouldTurnActive(){
        StateHolder holder = new StateHolder();
        assertTrue(holder.isActive); //i want this call not to fail 
    }
}
  • Si il y a un autre thread de contrôle, vous pouvez définir une véritable "terminé" signal wait/notify au lieu d'interrogation?
  • La condition est influencé par un autre thread, je Peux dire que je peux utiliser le Thread rejoindre ici? De toute façon +1 pour la question.
InformationsquelleAutor Rag | 2013-01-22