package com.javarush.test.level16.lesson13.home03; /* Рекурсивное создание нитей 1. Измени класс GenerateThread так, чтобы он стал нитью. 2. Создай конструктор GenerateThread, который должен: 2.1. Вызвать конструктор суперкласса с параметром String - номером созданной нити. Используй countCreatedThreads. 2.2. Запустить текущую нить. 2.3. Номер первой нити должен начинается с 1. 3. Переопредели метод toString, для этого внутри GenerateThread нажми Alt+Insert -> Override Methods. Начни печатать toString. 3.1. Метод toString должен возвращать № текущей нити и слово " created". Используй getName(). Пример: [8 created] 4. Пока количество созданных нитей меньше Solution.count метод run должен: 4.1. создать новую нить типа GenerateThread. 4.2. Вывести в консоль созданную в пункте 4.1. нить. 5. В итоге должно быть выведено в консоль 15 строк. */ public class Solution { static int count = 15; static volatile int countCreatedThreads; public static void main(String[] args) { System.out.println(new GenerateThread()); } public static class GenerateThread extends Thread { public GenerateThread() { super(String.valueOf(countCreatedThreads +1)); countCreatedThreads++; start(); } @Override public String toString() { return this.getName() + " created"; } public void run() { while(countCreatedThreads < count) { Thread thread = new GenerateThread(); System.out.println(thread.toString()); try { join(); } catch (InterruptedException e) { e.printStackTrace(); } } } } }
Leave A Comment