Вы часто видите это в программах, которые обновляют отображение чего-либо. Это называется Busy Waiting, и это плохо.
Если у вас есть цикл, который делает что-то вроде этого
public void run() {
while(running) {
gui.render();
}
}
Вы собираетесь жевать ваш процессор, когда вам это действительно не нужно. Вам нужно рендерить, снова и снова, более 100000 раз в секунду? Нет, вам действительно нужно всего около 30 кадров в секунду.
public void run() {
while(running) {
gui.render();
try { Thread.sleep(10); } catch(InterruptedException e) { /* we tried */}
}
}
Это ограничит вас скоростью до 100 кадров в секунду, и вы получите гораздо лучшую производительность.
Вы не всегда хотите это для процессорных фоновых потоков, так как вы хотите, чтобы они имели приоритет. При этом, если ваш фон занимает все ресурсы ЦП, как вы будете обрабатывать дальнейший ввод (например, я не знаю, кнопку ОТМЕНА, потому что вы не хотели начинать такой интенсивный, продолжительный час вычислений?)
Поэтому добавление небольшого сна в ваши потоки МОЖЕТ быть очень хорошим решением.