| Home  | Casa  | Hardware  | Networking  | Programmazione  | Software  | Domanda  | Sistemi  |   
Programmazione  
  • C /C + + Programming

  • Computer Programming Languages

  • Delphi Programming

  • Java Programming

  • Programmazione Javascript

  • PHP /MySQL Programmazione

  • Perl Programming

  • Python Programming

  • rubino Programmazione

  • Nozioni di base di Visual Programming
  •  
    Conoscenza Informatica >> Programmazione >> Java Programming >> Content
    Come trovare un thread Java a runtime
    L' arte di trovare le discussioni in fase di esecuzione coinvolge due classi Java , filo e ThreadGroup . Inoltre , è necessario ricordarsi di assegnare un nome al thread quando lo si crea . In caso contrario , se non chiami il tuo thread , si fa affidamento sul meccanismo di denominazione predefinito per le discussioni costruite in Java , e mentre si può essere in grado di indovinare ciò che il nome del thread dovrebbe essere, non vi è alcuna garanzia che sarà lo stesso nome di tutta tutte le piattaforme e le versioni runtime Java. Cose che ti serviranno
    Java Runtime Environment versione 6 o superiore
    Show More Istruzioni
    1

    creare il quadro di una classe di un'applicazione Java denominata "Trova ". Basta fornire un metodo vuoto main () come punto di partenza .

    Public class Trova {

    void main ( args String [ ] ) { public static

    }

    }
    2

    Creare un oggetto Runnable e discussione in modo da avere qualcosa da trovare . Nome del filo " Sleeper " , fornendo un secondo parametro al costruttore Thread, dove il primo argomento è il riferimento Runnable . Dopo aver creato la discussione , avviarlo chiamando il metodo start ( ) . Il codice seguente inizia l'ormai vuota metodo main () Definizione :

    corridore Runnable = new Runnable ( ) {

    public void run ( ) { try {


    Thread.sleep ( 50000 ) ;

    } catch ( InterruptedException e) {

    //ignora

    }

    } < br >

    } ;

    Discussione t = new Thread ( corridore , " Sleeper ");

    T.Inizio ();
    3

    trovare il filo con l'aiuto di ThreadGroup . Tutte le discussioni appartengono a un ThreadGroup . Questi gruppi di sedersi in un albero in cui tutti i gruppi hanno un nodo padre ( e nodi figli ) , fatta eccezione per la radice dell'albero , che non ha genitore . Supponendo che il filo di trovare non è in ThreadGroup del thread corrente , a piedi fino alla cima dell'albero , cercando in madre del gruppo . In questo modo, quando si va a trovare il filo " Sleeper " , saprete che avete trovato da tutte le discussioni attive saranno figli del thread padre signore .

    CurrentThread Discussione Thread.currentThread = ( ) ;

    gruppo ThreadGroup = currentThread.getThreadGroup ();

    mentre ( group.getParent ( ) = null) {
    gruppo

    = group.getParent ( ) ; !

    }
    4

    Utilizzare il metodo di ThreadGroup per raggruppare tutti i bambini le discussioni di questo genitore Super enumerate ( ) . Il metodo memorizza i thread attivi in un array

    int activeCount = group.activeCount ( ) .

    ActiveThreads discussione [ ] = new Thread [ activeCount 5 ] ;

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

    utilizzare la matrice activeThreads per aiutare a trovare il filo manca qui , quello segnato Una volta trovato, utilizzare il dumpStack () per fornire una stacktrace del thread :

    Discussione trovato = null;

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

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

    trovato = activeThreads [ i] ;

    pausa ;
    < p > } }


    if ( trovato = null ) {

    found.dumpStack (); }


    6 < p > Come la linea di chiusura per il metodo main () , indicare al sistema per uscire dalla memoria :

    System.exit ( 0 ) ;
    7

    compilare ed eseguire il programma . Mentre i numeri di riga nella traccia dello stack potrebbe essere leggermente diverso in base al le cose come stile di parentesi , tutti dovrebbero fornire lo stesso rendimento generale

    java.lang.Exception : . Stack trace

    in java . lang.Thread.dumpStack ( Thread.java : 1206 ) per

    a Find.main ( Find.java : 31 ) economici

    Previous :

    next :
      Articoli Correlati
    ·Come fare Validazioni in Struts 
    ·Differenze tra Fabbrica Arte astratta in Java 
    ·Come fare un gioco Java Come RuneScape 
    ·Come calcolare il vostro Scarabeo Punteggio in Java 
    ·Come convertire Oracle Forms a Java 
    ·Come convalidare una data in Java 
    ·Come rendere il codice Java in un Applet 
    ·Come eseguire NetBeans 
    ·Come impostare VIM per Java 
    ·Come leggere un file DOC in Java 
      Articoli in evidenza
    ·Come importare un pacchetto in un progetto Eclipse 
    ·Come fare un Ripetendo Progress Bar in VB 
    ·Come fare pulsanti di forma irregolare in C # 
    ·Come fare un pulsante Apri in Facebox Lightbox 
    ·Come dire a MySQL Query per mantenere Spazio Bianco 
    ·Come creare un logo animato in 3D in Javascript 
    ·MySQL Replication Tutorial 
    ·Come fare una stringa HTML in Objective C 
    ·Come utilizzare Lamport Timestamps 
    ·SQL VBA Tutorial 
    Copyright © Conoscenza Informatica http://it.wingwit.com