package com.javarush.task.task16.task1623;

/*
Рекурсивное создание нитей
*/

public class Solution {
    static int count = 15;
    static volatile int createdThreadCount;

    public static void main(String[] args) throws InterruptedException {
        System.out.println(new GenerateThread());
    }

    public static class GenerateThread extends Thread{

        public GenerateThread() throws InterruptedException {
            super(String.valueOf(++createdThreadCount));
            start();
          }

        @Override
        public void run() {
            try {
                Thread.sleep(1000);

                    if (Solution.count > createdThreadCount) {
                        System.out.println(new GenerateThread());
                    }
            }catch (InterruptedException e){e.getStackTrace();}
        }
        @Override
        public String toString() {
            return (getName()+" created "+currentThread().getName());
        }
    }
}
в общем задачу решил, но почитал комментарии и увидел, что люди пишут о разнице между if и while, но я так и не понял разницы, потому что при смене if на while размножение "почкованием" не происходит. Возможно я что-то делаю не так, но я просто хочу на примере увидеть разницу, а на данном примере разницы не вижу. "Ткните" пальцем в код, что я делаю не так, чтобы увидеть и понять наконец-то эту разницу между этими двумя операторами...