Это голод?

Я нашел кусок кода, где поток, кажется, голодает. Ниже приведен упрощенный пример. Это пример для голода? Какова причина, почему поток не заканчивается?

Примечание: изменение сна на 1 иногда приводит к прекращению. Закомментированный Thread.yield () решит проблему (для меня).

public class Foo {

    public static boolean finished = false;

    public static void main(String[] args) {

          Runnable worker = new Runnable() {

                 @Override
                 public void run() {

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

                      finished = true;
                 }
            };

            new Thread(worker).start();

            while (!finished) {
//          Thread.yield();
        }
    }
}

Ответы на вопрос(2)

Ваш ответ на вопрос