Каким будет результат компиляции и запуска следующей программы?

public class SleepMain {
    public static void main(String... args) {
        Thread t = new MyThread();
        for (int i = 1; i <= 5; i++) {
            System.out.print(i + " ");
            try {
                t.sleep(1000);
            } catch (InterruptedException e) {
                System.out.println("Interrupted in main");
            }
        }
    }

    static class MyThread extends Thread {
        public void run() {
            for (int i = 1; i <= 5; i++) {
                System.out.print(i + " ");
                try {
                    Thread.sleep(1000);
                } catch (InterruptedException e) {
                    System.out.println("Interrupted in myThread");
                }
            }
        }
    }
}
Explanation
Для запуска второго потока надо было вызвать метод t.start(). Без этого работает только исходный поток.
Метод sleep() класса Thread статический, потому по команде t.sleep() будет засыпать текущий поток, т.е. main.

Слідкуй за CodeGalaxy

Мобільний додаток Beta

Get it on Google Play
Зворотній Зв’язок
Продовжуйте вивчати
тести з Java
Cosmo
Зареєструйся Зараз
або Підпишись на майбутні тести