Is tight looping bad?
<p>Is tight looping in a program bad?</p>

<p>I have an application that has two threads for a game-physics simulator. An updateGame thread and a render thread.  The render thread is throttled by causing the thread to sleep for some milliseconds (to achieve the frame-rate I want) and the updateGame thread (that updates my in game objects positions based off some physics equations) was previously throttled by a 10 millisecond sleep.</p>

<p>However, I recently unthrottled the updateGame thread and the simulation of my objects movement seems to be significantly more realistic now that I have taken out that 10ms sleep.  Is it bad to hot loop or have a tight loop?</p>

<pre><code>private class UpdateTask implements Runnable
{
    private long previousTime = System.currentTimeMillis();
    private long currentTime = previousTime;
    private long elapsedTime;


    public void run()
    {
        while(true)
        {
     currentTime = System.currentTimeMillis();
     elapsedTime = (currentTime - previousTime); // elapsed time in seconds


     updateGame(elapsedTime / 1000f);

      try {
       Thread.currentThread().sleep(1);
      } catch (InterruptedException e) {
       // TODO Auto-generated catch block
       e.printStackTrace();
      }

     previousTime = currentTime;
     }
    }
}
</code></pre>

<p>In this example I'm just sleeping for 1ms (and from my understanding with how millisecond accuracy and the sleep function works this is probably more like 5-10ms.  If I sleep for any more than this it starts to have impacts on the accuracy of my collision detection and physics model.</p>

<p>Is it a bad practice to have tight loops or loops with 1ms sleeps in them?  Is there something else I should do instead?</p>
