Distinção entre ScheduledExecutorService e rolando seu próprio Runnable com Thread.sleep ()

Quais são os benefícios de usarScheduledExecutorService 'sscheduleAtFixedRate() para executar um pedaço de código regularmente, em vez de criar um novoRunnable que possui um loop para sempre associado a umThread.sleep() que faz com que o fio durma pelo período desejado?

xiste um ganho de desempenho com um dos método

questionAnswers(1)

yourAnswerToTheQuestion