Как работает метод Java run ()?

Многопоточность в Java выполняется путем определения run () и вызова start ().

Запустите делегаты нативному методу, который запускает поток через подпрограммы операционной системы, и run () вызывается из этого вновь порожденного потока.

При запуске автономного приложения автоматически создается главный поток для выполнения функции main ().

Теперь рассмотрим этот код -

public class Test extends Thread {
    public static void main(String[] args) throws Exception {
        new Thread(new Test()).start();
        throw new RuntimeException("Exception from main thread");
    }
    public void run() {
        throw new RuntimeException("Exception from child thread");
    }
}

Это вывод -

java.lang.RuntimeException: Exception from child thread
    at com.Test.run(Test.java:11)
    at java.lang.Thread.run(Thread.java:662)
java.lang.RuntimeException: Exception from main thread
    at com.Test.main(Test.java:8)

Если метод main () запускается через поток, почему функция run () не отображается в верхней части иерархии вызовов?

Как основной поток может быть создан без реализации Runnable?

Ответы на вопрос(4)

Ваш ответ на вопрос