| maison  | Hardware  | réseaux  | programmation  | Logiciel  | Dépannage  | systèmes |  
programmation  
  • C /C + + Programming

  • Computer Programming Languages

  • Delphi Programming

  • Programmation Java

  • Programmation JavaScript

  • PHP /MySQL Programmation

  • programmation Perl

  • Programmation Python

  • Ruby Programming

  • Visual Basics programmation
  •  
    Connaissances Informatiques >> programmation >> Programmation Java >> Content
    Comment trouver un fil Java lors de l'exécution
    L' art de trouver les discussions à l'exécution implique deux classes Java , le fil et ThreadGroup . En outre, vous ne devez pas oublier de nommer votre fils quand vous le créez. Sinon, si vous ne nommez pas votre sujet, vous êtes en s'appuyant sur ​​le mécanisme de nommage par défaut pour les threads intégrés dans Java, et alors que vous pourriez être en mesure de deviner ce que le nom de fil devrait être, il n'ya aucune garantie que ce sera le même nom partout toutes les plates-formes d'exécution et les versions de Java . Choses que vous devez
    Java Runtime Environment version 6 ou supérieure
    Afficher plus Instructions
    1

    Créer le cadre d'une classe d'application Java nommée « Rechercher». Il suffit de fournir une méthode vide main () comme point de départ .
    Classe public

    Trouver {

    static void Main ( String args []) { publiques

    }

    }
    2

    Créer un objet Runnable et de fils de sorte que vous avez quelque chose à trouver. Nommez le fil " Sleeper " en fournissant un second argument du constructeur de Thread, où le premier argument est la référence Runnable . Après la création de la discussion , lancez-le en appelant sa méthode start () . Le code suivant démarre la définition de la méthode maintenant vide main () :

    coureur Runnable = new Runnable () {

    public void run () {

    try {

    Thread.sleep (50000) ;

    } catch ( InterruptedException e) {

    //ignorer

    }

    } < br >

    };

    fil t = new Thread ( coureur, " Sleeper ");

    t.start ();
    3

    Trouvez le fil à l'aide de ThreadGroup . Tous les fils appartiennent à une ThreadGroup . Ces groupes de s'asseoir dans une arborescence dans laquelle tous les groupes ont un noeud parent ( et noeuds enfants ) , à l'exception de la racine de l'arbre , ce qui n'a pas de parent . En supposant que le fil pour trouver n'est pas dans l' ThreadGroup du thread courant , montez au sommet de l'arbre en regardant la mère du groupe . De cette façon, quand vous allez à trouver le fil " Sleeper " , vous saurez que vous avez trouvé depuis toutes les discussions actives seront les enfants du thread parent suzerain .

    CurrentThread du filetage = de Thread.currentThread ( ) ;

    groupe ThreadGroup = currentThread.getThreadGroup ();

    while ( group.getParent () = null) { groupe de


    = group.getParent (); !

    }
    4

    Utilisez la méthode de ThreadGroup de regrouper tous les enfants fils de cette super- parent enumerate (). La méthode stocke les threads actifs dans un tableau

    int ActiveCount = group.activeCount (); .

    ActiveThreads de la discussion [] = new Thread [ ActiveCount +5] ;

    int actualCount = group.enumerate ( activeThreads ) ; - " . Sleeper "
    5

    Utilisez le tableau activeThreads pour aider à trouver le fil qui manque ici , celui marqué Une fois trouvé , utilisez le DumpStack () pour fournir une stacktrace du fil :

    discussion trouvées = null;

    for (int i = 0; i < actualCount ; i + +) {

    if (" Sleeper " equals ( activeThreads [i] getName ()). . ) {

    trouvées = activeThreads [i] ; pause


    ;
    < p >} }


    if ( trouvé = null ! ) {

    found.dumpStack (); }


    6 < p> Comme la ligne de fermeture de votre méthode main () , dites le système pour sortir de la mémoire :

    System.exit (0);
    7

    compiler et exécuter votre programme . Alors que les numéros de ligne dans la trace de la pile pourrait être légèrement différent en fonction de choses comme entre parenthèses style, ils doivent tous fournir le même rendement général

    java.lang.Exception : . Stack trace

    à Java . lang.Thread.dumpStack ( Thread.java : 1206)

    à Find.main ( Find.java : 31)

    Previous :

    next :
      articles connexes
    ·Comment insérer et enlever gauche et droite tableaux J…
    ·Comment faire Flotteurs statiques en Java 
    ·Comment ajouter JMenuBar à JPanel 
    ·Comment faire pour afficher des nombres dans l'ordre cr…
    ·Comment créer JNLP 
    ·Affichage des applets dans Netbeans 
    ·Quel est statique en Java 
    ·Comment puis-je supprimer une apostrophe dans une chaî…
    ·Je ne trouve pas APK pour un projet Android 
    ·Comment faire pour intégrer une applet Java en HTML 
      articles en vedette
    ·Comment transférer des tableaux de données HTML vers …
    ·Comment lancer en entiers en VB6 
    ·Comment faire votre propre PHP Proxy 
    ·Comment déterminer la taille d'un mot en Python 
    ·Fonctions de rappel JavaScript : isFunction 
    ·MySQL PHP WP : Comment insérer un message Plugin Batch…
    ·Introduction à Pseudocode 
    ·Comment faire pour modifier une table dans Oracle à l'…
    ·Comment mettre TeamSpeak PHP sur mon site 
    ·Comment publier PHP dans un menu déroulant 
    Copyright © Connaissances Informatiques http://fr.wingwit.com