Jak działa metoda Java run ()?
Wielowątkowość w Javie odbywa się poprzez zdefiniowanie run () i wywołanie start ().
Uruchom delegatów do metody rodzimej, która uruchamia wątek za pomocą procedur systemu operacyjnego, a run () jest wywoływany z tego nowo utworzonego wątku.
Po uruchomieniu aplikacji autonomicznej automatycznie tworzony jest wątek główny, aby uruchomić main ().
Teraz rozważ ten kod -
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");
}
}
To jest wyjście -
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)
Jeśli metoda main () jest uruchamiana przez wątek, dlaczego nie działa () pojawia się na górze hierarchii wywołania?
W jaki sposób główny wątek może zostać utworzony bez implementacji Runnable?