Задачу я решил, после того как много раз ничего не получилось и решение я подсмотрел.
Помогите разобраться в логике
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, печатается номер нити как и просили..
Все Так?