Dator
 |  Startsida |  Hårdvara |  Nätverk |  Programmering |  Programvara |  Felsökning |  System |   
Programmering
  • C /C + + -programmering
  • Computer Programspråk
  • Delphi Programmering
  • Java Programming
  • JavaScript programmering
  • PHP /MySQL Programmering
  • perl Programmering
  • python Programming
  • Ruby programmering
  • Visual Basics Programmering
  • * Dator Kunskap >> Programmering >> Java Programming >> Content

    Hur man hittar en Java tråd på Runtime

    Konsten att hitta trådarna vid körning innebär två Java-klasser , tråd och ThreadGroup . Dessutom måste du komma ihåg att namnge din tråd när du skapar den . Annars , om du inte namnge din tråd , är du beroende på standard namngivning mekanism för trådar inbyggda i Java , och medan du kanske kan gissa vad tråden namnet borde vara , det finns ingen garanti att det kommer att vara samma namn över alla runtime plattformar och Java-versioner . Saker du behöver Review, Java Runtime Environment version 6 eller högre
    Visa fler instruktioner
    1

    Skapa ramen för ett Java-program klass som heter " Sök . " Bara ge en tom main ( ) metoden som utgångspunkt .

    Public class Hitta {

    public void main ( String args [ ] ) {

    }

    }
    2

    Skapa en Runnable objekt och tråd så att du har något att hitta . Namnge tråden " Sleeper " genom ett andra argument till ämnet konstruktören , där det första argumentet är det Runnable referens . När du har skapat tråd , starta den genom att anropa dess start ( ) metoden . Följande kod börjar den nu tomma main ( ) metoden definition :

    Runnable löpare = ny Runnable ( ) {

    public void run ( ) {

    try {

    Thread.sleep ( 50000 ) ,

    } catch ( InterruptedException e ) {

    //ignorera

    }

    }

    };

    Thread t = new Thread ( löpare , " Sleeper " ) ;

    t.start ( ) ;
    3

    hitta tråden med hjälp av ThreadGroup . Alla trådar tillhör en ThreadGroup . Dessa grupper sitter i ett träd där alla grupper har en förälder nod ( och barn noder ) , utom roten av trädet , som inte har någon förälder . Förutsatt tråden att hitta är inte i den aktuella tråden är ThreadGroup , gå upp till toppen av trädet genom att titta på gruppens moderbolag . På det sättet , när du går att hitta " Sleeper " gänga , vet du att du har hittat det eftersom alla aktiva trådar blir barn av overlord förälder tråden .

    Thread currentThread = Thread.currentThread ( ) ;

    ThreadGroup group = currentThread.getThreadGroup ( ) ;

    samtidigt ( group.getParent ( ) = null ) {

    grupp = group.getParent ( ) ; !

    }
    4

    Använd räkna ( ) metoden för ThreadGroup att gruppera alla barn trådar i denna super förälder . Metoden sparar de aktiva trådarna i en array

    int activeCount = group.activeCount ( ) , .

    Tråd activeThreads [ ] = new Thread [ activeCount +5 ] ;

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

    Använd activeThreads array för att hjälpa till att hitta den saknade tråd här , den ena märkt En gång hittade , använd dumpStack ( ) metod för att ge en stacktrace av tråden :

    Thread hittade = null ;

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

    om ( " Sleeper " är lika med ( activeThreads [ i] getName ( ) ) . . ) {

    hittade = activeThreads [ i] ;

    break;

    }

    }

    om ( hittade = null ) {

    found.dumpStack ( ) ;

    }
    6

    som sista rad i din main ( ) metoden , tala om för systemet att gå ur minnet :

    System.exit ( 0 ) ,
    7

    Kompilera och köra ditt program . Medan radnummer i stackspårningen kan vara något annorlunda baserat på saker som parenteser stil , de alla borde ge samma generella utgång

    java.lang.Exception : . Stackspårning

    på java . lang.Thread.dumpStack ( Thread.java : 1206 ) katalog

    på Find.main ( Find.java : 31 ) katalog

    Tidigare:

    nästa:
    relaterade artiklar
    ·Java Input Undantag
    ·Hur till Ändra DPI i Java
    ·ConnectException : Connection Refused på Java
    ·Hur kan man överföra filer med JSP
    ·Hur man beräknar påsken Med Java
    ·Handledning för NetBeans Desktop Application
    ·Hur man skapar gränser i ett rutnät i Java
    ·Hur man skriver Java -program för en spelautomat
    ·Hur Importera Strängar i Java
    ·Hur man gör en Pentagonal Pyramid i Java
    Utvalda artiklarna
    ·Hur du ändrar ett heltal till en sträng i Java
    ·Skillnad mellan Likvärdighet & Boundary Partitionering…
    ·Lägga till rader till DataView
    ·Hur vill kolla Skrivare Tillgänglighet Använda Java
    ·Hur får man Längd på en lista i Python
    ·Skillnad mellan FORTRAN Funktioner och subrutiner
    ·Hur får fältnamn från en datamängd
    ·Hur man gör en CSS Bild Karta
    ·Hur man manipulerar Controls Listvy i MFC
    ·Vad är Python Coding
    Copyright © Dator Kunskap http://www.dator.xyz