Quels sont ces fils qui sont spwaned lorsqu'une application Java commence son exécution?

StackOverflow https://stackoverflow.com/questions/2239186

  •  19-09-2019
  •  | 
  •  

Question

J'ai créé une application Java simple qui a un JFrame et quelques JButton. Quand j'ai essayé d'inspecter l'application java en utilisant JVMTI j'ai trouvé que si je ne crée pas de discussions explicites, il y avait beaucoup d'entre eux donné naissance.

Je pourrais trouver les fils suivants:

  • DestroyJavaVM
  • AWT-EventQueue-0
  • AWT-arrêt
  • AWT-XAWT- Discussion Daemon
  • Java2D Disposer- Daemon discussion
  • Discussion -0- Discussion Daemon [créé par l'agent JVMTI]
  • Signal Dispatcher- Daemon fil
  • Finalize- Daemon discussion
  • Référence Händler- Daemon Discussion

La plupart d'entre eux étaient dans un état Runnable. Quelqu'un peut-il me dire la fonction de ces fils?

Était-ce utile?

La solution

Ces fils sont utilisés par les bibliothèques sous-jacentes pour gérer les widgets, affichage, boucle d'événements, et d'autres plomberie qui est nécessaire pour votre application graphique.

Une application GUI a généralement beaucoup de pièces mobiles, et si vous avez remarqué que vous ne devez pas écrire explicitement un code pour gérer ces pièces (par exemple, la mise à jour de l'écran, ou à dessiner un bouton, ou la manipulation d'une souris mouvement). Est-est cet ensemble de fils de fond qui sont responsables de la gestion de ces pièces, et le rendre aussi facile que possible pour vous concentrer sur votre logique d'application.

Ces fils sont donné naissance à des bibliothèques que vous utilisez (par exemple, AWT, Swing, etc.) et de nettoyer souvent eux-mêmes (et les ressources qu'ils gèrent) jusqu'à à la fin.

Autres conseils

Je peux vous dire une, et devinez à trois ...

  • AWT-EventQueue-0

Ceci est l'interface graphique / Awt / thread Swing. Tout ce que l'écriture à l'interface graphique doit être exécutée sur ce fil! Parfois, si je pense qu'il ya un point où un autre thread peut être en train d'écrire à l'interface graphique, je vais aller au point où je pense que l'affirmation pourrait se produire et affirmer que le nom du thread courant correspond à « AWT-EventQueue-0 » .

Je souhaite vraiment que Sun avait publié une version « Debug » de la bibliothèque qui a affirmé l'utilisation correcte de filetage dans tous les composants - il aurait sauvé beaucoup de maux de tête et enregistré Java d'avoir un REP vraiment mauvais pour écraser GUIs quand il est vraiment des gens qui ne comprennent pas ce fil.

Ce sont probablement tous liés au collecteur d'ordures fileté:

  • Java2D Disposer- Daemon discussion
  • Finalize- Daemon discussion
  • Référence Händler- Daemon Discussion
Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top