Maison >Java >javaDidacticiel >Comment puis-je répertorier par programme tous les threads en cours d'exécution dans un programme Java ?

Comment puis-je répertorier par programme tous les threads en cours d'exécution dans un programme Java ?

Barbara Streisand
Barbara Streisandoriginal
2024-12-14 21:10:14968parcourir

How Can I Programmatically List All Running Threads in a Java Program?

Liste des threads exécutés en Java par programmation

Java fournit un mécanisme intégré pour répertorier tous les threads actifs dans la machine virtuelle Java (JVM). Cela inclut les threads créés par la classe actuelle et ceux initiés par des processus externes.

Obtention d'un ensemble de threads itérables

Pour récupérer un ensemble itérable de tous les threads en cours d'exécution, utilisez le code suivant :

Set<Thread> threadSet = Thread.getAllStackTraces().keySet();

Cette approche offre une légère surcharge de performances, consommant généralement un temps négligeable pour un nombre raisonnable de threads (par exemple, 0 ms pour 12 threads dans un environnement Azul JVM 16.0.1 fonctionnant sous Windows 10).

Récupération des objets Thread et Class

De plus, il est possible d'extraire les objets Thread et Class associés à chaque thread dans la liste :

for (Thread thread : threadSet) {
    String threadName = thread.getName();
    Class<?> threadClass = thread.getClass();
}

Cela vous permet d'inspecter les propriétés du thread et les informations de classe, telles que le nom du thread et la classe Java qui a créé ça.

Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!

Déclaration:
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn