public static class Thread3 extends Thread {
        public void run() {
            while(true) {
                try {System.out.println("Ура");Thread.sleep(500);} catch (InterruptedException e) {}

            }
        }

    }
первый вопрос: Почему этот код выше выполняется правильно, а остальные не выводят "Ура"? 1) while(true) { try {Thread.sleep(500);} catch (InterruptedException e) {} System.out.println("Ура"); } 2) while(true) { try {Thread.sleep(500);System.out.println("Ура");} catch (InterruptedException e) {} } Второй вoпрос: Почему четвёртая нить прекращает свое выполнение? Решение подсмотрел.
public static class Thread4 extends Thread implements Message{
        private boolean myStop = false;

        @Override
        public void showWarning() {
            myStop = true;
        }

        @Override
        public void run() {
            try {
                while ( !myStop ) {
                    Thread.sleep(0);
                }
            } catch (InterruptedException e) {}
        }
    }
Третий вопрос: Как использовать метод isAlive()? В интернете вроде почитал - не понял.