Здравствуйте! Хотелось бы уточнить некоторые нюансы... 1.
public static class Horse extends Thread {

        private boolean isFinished;

        public Horse(String name) {
            super(name);
        }
здесь передается имя в суперкласс, а где можно посмотреть какой конструктор и какие параметры имеет класс Thread или он по умолчанию имеет только одно поле name? как я понял из предыдущего материала , то Thread обязательно реализует интерфейс Runnable (который имеет лишь метод run), но про конструктор нигде ничего не сказано.. Отсюда вопрос: куда и зачем передаем переменную name? 2. кусок из решения задачи
else
{
    System.out.println("Waiting for " + horses.get(i).getName());
    horses.get(i).join();

}
при тестировании зазачи иногда выходило сообщение об ожидании финиша лошади, но по предыдущему материалу я , видимо , не совсем до конца понял... не должна ли вся программа (в момент проверки финишировала ли лошадь - получили отрицательный ответ) ожидать пока данная лошадь финиширует, а уже потом продолжились бы все остальные нити? или должна ожидать только основная нить (не нити horses). Т.е в моем представлении должен быть такой вывод на экран, например:
Horse_02 has finished the race!
Horse_01 has finished the race!
Horse_04 has finished the race!
Waiting for Horse_03
                                              //Зесь по моей логике программа останавливается (остальные лошади перестают бежать) и  ожидает пока что третья лошадь финиширует
Horse_03 has finished the race!
...здесь финишируют остальные лошади
но по факту при выводе на экран получаю следующий текст (вышел такой текст при одном из тестирований программы):
Waiting for Horse_01
Horse_07 has finished the race!
Horse_06 has finished the race!
Horse_09 has finished the race!
Horse_02 has finished the race!
Horse_01 has finished the race!
Horse_03 has finished the race!          //здесь самое интересно получилось..... сначала лошадь финишировала, а потом вышло сообщение , что мы ждем ее финиша.....
Waiting for Horse_03
Waiting for Horse_04
Horse_05 has finished the race!
Horse_04 has finished the race!
Horse_08 has finished the race!
Waiting for Horse_08
Waiting for Horse_10
Horse_10 has finished the race!
Я подозреваю, что такие "Недоразумения" могут быть из-за разной скорости вывода информации... Но вдруг не так и моя логика не совсем права. Просьба объяснить как и чего...