В консоль выводит согласно всем условиям. Менял также в методе run() условие с того, что приведено у меня на следующее:
if (createdThreadCount  < count) {
                    System.out.println(this);
                    new GenerateThread();
                } else if (createdThreadCount  = count) {
                    System.out.println(this);
}
по идее тут проверяется, не создано ли уже достаточно тредов и, если так, то не создается новый, а выводится текущий. Всё равно неправильно. Не могу понять, в чем ошибка.