Задачу я решил, после того как много раз ничего не получилось и решение я подсмотрел. Помогите разобраться в логике
public static void main(String[] args) {
        //System.out.println(new GenerateThread());
        new GenerateThread();
    }
Начнем с того, что я думал в main ничего менять не надо.. И так и Так получается один и тот же результат. -> метод String toString() переопределяет
System.out.println(new GenerateThread());
метода run(){} класса GenerateThread? 2/
super(String.valueOf(++createdThreadCount));
Я понимаю, что super сделает вызов метода родителя т.е Thread , но как оно взовет к конструктору того метода, да еще и с параметром String...мне не понятно 3 общая логика 1- метод main создает новый объект класса GenerateThread 2- получив звонок из main, GenerateThread хватается за голову и отправляет задачу своему супервайзеру -Thread да еще и с деталями (String.valueOf(++createdThreadCount)). (вопрос 2) 3- нить запускается 3.1 - происходит проверка - сравнение с числом count. Если меньше- Распечатай !!!новую нить..почему программа не начинает плодить нити под эгидой первой созданной до бесконечности типа 1->1.1->1.1.1->1.1.1.1 и тд 4- В итоге переопрелив методом toString() печатание из метода run, печатается номер нити как и просили.. Все Так?