Como o método Java run () funciona?

O multi-threading em Java é feito definindo run () e chamando start ().

Inicie os representantes em um método nativo que inicia um thread por meio de rotinas do sistema operacional e run () é chamado a partir desse thread recém-gerado.

Quando um aplicativo independente é iniciado, um thread principal é criado automaticamente para executar o main ().

Agora considere este código -

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");
    }
}

Esta é a saída -

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)

Se o método main () é iniciado por meio de um thread, por que o run () não aparece no topo da hierarquia de invocação?

Como o thread principal pode ser gerado sem implementar o Runnable?

questionAnswers(4)

yourAnswerToTheQuestion