Решая задачу написал код был без второй строки (см. пример ниже). А в цикле была ссылка на объект внутри класса которому принадлежал метод run(). Естественно получил на выходе косяк... При этом решая задачи я раздела core я редко писал что-то подобное, и потому не запомнил. Как я понимаю суть данной строки в том, что мы создаем переменную которая ссылается на объект чей метод run() запущен. То есть, при запуске метода run(), создается ссылка на тот объект чей run() запустили. Далее в цикле работаем с данной ссылкой. Если не писать данную строку, а ссылаться на переменную внутри класса, то данная переменная в процессе работы нити может быть перенаправлена на другой объект, что в конечном итоге приведет к ошибке. Коллеги подскажите, если мне пришлось переопределять метод run(), лучше всегда создавать в нем подобную переменную? Какие могут быть случаи когда это не обязательно делать?
public void run() {
        Thread current = Thread.currentThread();
        while (!current.isInterrupted()) {. . . .}
}