- Выводил на экран 15 строк . От 1 до 15 -
. Вывод программы должен соответствовать заданию, показывать, что все 15 нитей были созданы.
- Но в описании есть раздел -
2.3. Номер первой нити должен начинается с 1.
- При том что -
4. Пока количество созданных нитей меньше Solution.count метод run должен:
4.1. Создавать новую нить типа GenerateThread.
4.2. Выводить в консоль созданную в пункте 4.1. нить.
5. В итоге должно быть выведено в консоль 15 строк.
Так как здесь может быть 15 строк если число переменная - count ( это число 15), а номер первой нити это 1 . Меньше 15 это максимум 14 . Получается всего 14 строк?
Выводил от 0 до 14 (условие не выполнено), от 1 до 15(тоже).
package com.javarush.task.task16.task1623;
/*
Рекурсивное создание нитей
*/
//
//2. Создай конструктор GenerateThread, который должен:
// 2.1. Вызвать конструктор суперкласса с параметром String - номером созданной нити. Используй countCreatedThreads.
// 2.2. Запустить текущую нить.
// 2.3. Номер первой нити должен начинается с 1.
public class Solution {
static int count = 15;
static volatile int countCreatedThreads ;
public static void main(String[] args) {
while (true) {
System.out.println(new GenerateThread());
if (countCreatedThreads == count) {
GenerateThread generateThread = new GenerateThread();
generateThread.interrupt();
break;
}
}
// GenerateThread generateThread = new GenerateThread();
// generateThread.start();
}
public static class GenerateThread extends Thread {
GenerateThread gT;
boolean is = false;
public GenerateThread(){
super("" + countCreatedThreads);
countCreatedThreads ++;
try {
gT.start();
}
catch (NullPointerException n){
}
}
@Override
public void run() {
while (true){
//if (countCreatedThreads <= count){
System.out.println(new GenerateThread());
//}else {
// break;
}
// System.out.println(generateThread.toString());
}
@Override
public String toString() {
// if(countCreatedThreads == 0){
//
// return super.getName()+1 + "created" + " флажок";
// }
return super.getName() + " created" ;
}
}
}