Distinction between ScheduledExecutorService and rolling your own Runnable with Thread.sleep()
<p>What are the benefits of using ScheduledExecutorService's scheduleAtFixedRate() to run a piece of code on a regular basis instead of creating a new Runnable that has a forever loop coupled with a Thread.sleep() that causes the thread to sleep for the desired period?</p>

<p>Is there a performance gain with one of the methods?</p>

<p>Thanks!</p>
