Как работает метод 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?