title: Java - alternative to thread.sleep
body: <p>I have a requirement to pause a while loop for a specific number of milliseconds. I have tried using Thread.sleep(duration) but it is not accurate, especially in a looping scenario. Millisecond accuracy is important in my program.</p>
  
  <p>Here is the algorithm where I don't want to go back to check for condition until <code>expectedElapsedTime</code> has passed by. </p>
  
  <pre><code>while (condition) {
      time = System.currentTimeMillis();
      //do something
      if (elapsedTime(time) &lt; expectedElapsedTime) ) {
          pause the loop  // NEED SUBSTITUTE FOR Thread.sleep()
      }
      // Alternative that I have tried but not giving good results is 
      while ((elapsedTime(time) &lt; expectedElapsedTime)) {
          //do nothing
      }
  }
  
  long elapsedTime(long time) {
     long diff = System.currentTimeMillis() - time;
     return diff;
  }
  </code></pre>