Не понимаю, почему фактически идентичный код работает по разному

Вот именно отрывок который меня выбешивает:

AnalJ anal2 = new AnalJ();
        Thread anal3 = new Thread(anal2);
        anal3.start();
        new AnalG().start();
        new Thread().start(anal2);

Для меня является не понятным, чем отличается Thread anal3 = new Thread(anal2); от new Thread().start(anal2);
По факту это же одно и то же?

Вот картинка полного кодавведите сюда описание изображения


Ответы (1 шт):

Автор решения: BccHnw

У Thread нет метода start с указанием Runnable для запуска. Либо надо подавать Runnable в конструктор (как у вас сделано для первого варианта). Либо делать наследование класса Thread с переопределением run, в котором и писать нужный код.

→ Ссылка