Exécution de code sous threads Java est un puissant moyen de faire beaucoup de choses en peu de temps . Pour surveiller et contrôler les threads, vous devez configurer un objet thread lié à votre code thread- enabled . Cela vous donne le plein contrôle sur les discussions que vous avez créées . Choses que vous devez
projet Java avec threads exécutables dans le code
Afficher plus Instructions
1
obtenir l'ID de fil avec cette commande dans la course obligatoire () qui exécute votre fil : .
Thread.currentThread () getId ()
2
affecter l'objet de fil à une variable publique si vous avez besoin de contrôler le fil à partir d'autres parties du programme , ou l'imprimer directement si vous voulez juste savoir ce qui fonctionne :
public int myThreadId = 0;
public void run () { System.out.println
( "Nom de discussion: " . + Thread.currentThread () getName () //impression du fil nom
myThreadId = Thread.currentThread () getId (); //Affectation de l' ID de thread à un public. Variable:
}
3
Créer un nouvel objet thread pour contrôler ou surveiller un thread à partir d'autres parties du programme. Vous pouvez également saisir l'objet d'un filetage extérieur , . tels que le processus principal , en construisant un arbre complet de courir les discussions et les groupes de fils Appelez cela de la fonction main () de votre classe Java:
//Descendez l'arborescence pour trouver le groupe root < br >
ThreadGroup myRootGroup = Thread.currentThread () de getThreadGroup (); .
ThreadGroup parentGroup ;
while (! ( parentGroup = myRootGroup.getParent ()) = null) {< br >
rootGroup = parentGroup ;
}
//marche arrière à partir de la racine , la création d'un objet Thread pour chaque thread dans votre processus
discussions [] de myThreads = new Thread [ myRootGroup.activeCount ()] ;
tout ( rootGroup.enumerate ( myThreads , true) == myThreads.length ) {
myThreads = new Thread [ myThreads.length * 2 Photos ] ; }
maintenant vous pouvez accéder à tous les fils dans votre processus un par un . Par exemple:
System.out.println ( "Nom de discussion: " + myThreads . [0] CurrentThread () de getName (); . . .
myThreadId = myThreads [0] CurrentThread () getId ();