Qual è la relazione tra il metodo main () e il thread principale in Java?


Il mio tutor mi ha detto che il thread principale è il thread genitore di ogni thread, ma non è in grado di spiegare perché.

Quando scrivo un semplice programma:

Class A{}

Allora al momento dell'esecuzione lancia un'eccezione:

java.lang.NoSuchMethodError: main Exception in thread "main"

Esiste una relazione tra il metodo main() e il thread principale?

Author: Makoto, 2013-07-16

2 answers

Esiste una relazione tra il metodo main() e il thread principale ?

All'avvio della JVM, crea un thread chiamato "Main". Il tuo programma verrà eseguito su questo thread, a meno che tu non crei altri thread da solo.

La prima cosa che fa il thread "Principale" è cercare il tuo metodo static void main(String[] argv) e invocarlo. Questo è il punto di ingresso al tuo programma.

Se vuoi che le cose accadano "allo stesso tempo", puoi creare più thread e dare a ciascuno qualcosa eseguire. Continueranno quindi a fare queste cose contemporaneamente. La JVM crea anche alcuni thread interni per il lavoro in background come la garbage collection.

 40
Author: Thilo, 2013-07-16 06:07:02

In primo luogo Main Thread is a parent thread of every thread è ambiguo. A differenza di Process, nei thread Java non esiste il concetto di genitore e figlio. Hai ThreadGroups per raggruppare i thread e quindi avere gruppi figlio, ma è diverso da Process nel senso che se il genitore muore, il bambino rimane ancora.

Il thread main è il thread che avvia il programma o semplicemente che esegue il metodo public static void main(String... args).

 10
Author: Jatin, 2013-07-16 06:09:00