Вроде и решил задачу, но не понял несколько строк в коде, а именно:
public static void main(String[] args) {
        System.out.println(new GenerateThread());
    }


public void run() {
            if (createdThreadCount < Solution.count) {
                System.out.println(new GenerateThread());
            }
        }
Вопрос в том, что правильно ли я понял, что мы создаем 2 одинаков нити или же они как то взаимодействуют друг с другом?