Java - alternative à thread.sleep

J'ai une obligation de mettre en pause une boucle while pour un nombre de millisecondes. J'ai essayé d'utiliser Thread.le sommeil(la durée), mais elle n'est pas exacte, surtout dans une boucle scénario. Une précision à la milliseconde est important dans mon programme.

Voici l'algorithme où je ne veux pas revenir en arrière pour vérifier l'état jusqu'à ce que expectedElapsedTime a passé par.

while (condition) {
    time = System.currentTimeMillis();
    //do something
    if (elapsedTime(time) < expectedElapsedTime) ) {
        pause the loop  //NEED SUBSTITUTE FOR Thread.sleep()
    }
    //Alternative that I have tried but not giving good results is 
    while ((elapsedTime(time) < expectedElapsedTime)) {
        //do nothing
    }
}

long elapsedTime(long time) {
   long diff = System.currentTimeMillis() - time;
   return diff;
}

source d'informationauteur user1189747