Java - альтернатива thread.sleep

У меня есть требование приостановить цикл while на определенное количество миллисекунд. Я пробовал использовать Thread.sleep (duration), но это неточно, особенно в сценарии цикла. В моей программе важна точность до миллисекунды.

Вот алгоритм, в котором я не хочу возвращаться для проверки состояния, пока не пройдет expectedElapsedTime .

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;
}
20
задан Gray 8 October 2013 в 15:20
поделиться