Quelle est la relation entre la méthode main() et le thread principal en Java?


Mon tuteur m'a dit que le thread principal est le parent fil de chaque thread, mais il n'est pas en mesure d'expliquer pourquoi.

Quand j'écris un programme simple:

Class A{}

Ensuite, au moment de l'exécution, il lève une exception:

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

Existe-t-il une relation entre la méthode main() et le thread principal?

Author: Makoto, 2013-07-16

2 answers

Existe-t-il une relation entre la méthode main() et le thread principal ?

Lorsque la JVM démarre, elle crée un thread appelé "Main". Votre programme s'exécutera sur ce thread, sauf si vous créez des threads supplémentaires vous-même.

La première chose que le thread "principal" fait est de rechercher votre méthode static void main(String[] argv) et de l'invoquer. C'est le point d'entrée de votre programme.

Si vous voulez que les choses se passent "en même temps" , vous pouvez créer plusieurs threads et donner à chacun quelque chose à exécuter. Ils continueront alors à faire ces choses en même temps. La JVM crée également des threads internes pour le travail en arrière-plan, tels que la récupération de place.

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

Tout d'Abord Main Thread is a parent thread of every thread est ambigu. Contrairement à Process, dans les threads Java, il n'y a pas de concept de parent et d'enfant. Vous avez ThreadGroups pour regrouper les Threads, puis des groupes enfants, mais c'est différent de Process dans le sens où si le parent meurt, l'enfant reste toujours.

Le thread main est le thread qui démarre votre programme, ou simplement qui exécute votre méthode public static void main(String... args).

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