| Casa | Hardware | Redes | Programación | software | Criticar | Sistemas |   
Programación  
  • C /C + + Programming

  • Lenguajes De Programación

  • Delphi Programación

  • Programación Java

  • JavaScript Programación

  • Programación PHP /MySQL

  • Perl Programming

  • Python Programming

  • Rubí Programación

  • Visual Basics Programación
  •  
    Conocimientos Informáticos >> Programación >> Programación Java >> Content
    Cómo encontrar un Thread Java en tiempo de ejecución
    El arte de encontrar hilos en tiempo de ejecución incluye dos clases de Java , hilo y ThreadGroup . Además , hay que recordar el nombre de su hilo cuando se crea. De lo contrario , si usted no nombra a su hilo, usted está confiando en el mecanismo de nomenclatura predeterminado para temas incorporados en Java, y mientras que usted puede ser capaz de adivinar lo que el nombre del subproceso debe ser, no hay garantía de que va a ser el mismo nombre en todas las plataformas de tiempo de ejecución y las versiones de Java. Cosas que necesitará
    versión de Java Runtime Environment SE 6 o superior
    Mostrar más instrucciones
    1

    Crear el marco para una clase de aplicaciones Java llamado "Find ". Simplemente proporcione un método main () vacío como punto de partida .
    Public class

    Encuentre {

    públicos void ( String args [ ] ) { static

    }

    }
    2

    Crear un objeto Runnable e hilo para que tenga algo de encontrar. Nombre del hilo " Sleeper " , proporcionando un segundo argumento al constructor Thread, donde el primer argumento es la referencia Runnable . Después de crear el tema , empezar llamando a su método start () . El código siguiente comienza la definición del método principal ha quedado vacío () :

    corredor Runnable = new Runnable () { try


    pública void run () { {

    Thread.sleep ( 50000) ;

    } catch ( InterruptedException e) {

    //ignore


    } } < br >

    } ;

    Thread t = new Thread ( corredor, "Sleeper ");

    t.Start ();
    3

    Encontrar el hilo con la ayuda de ThreadGroup . Todos los temas pertenecen a un ThreadGroup . Estos grupos de sentarse en un árbol en el que todos los grupos tienen un nodo padre ( y nodos hijos ) , a excepción de la raíz del árbol , que no tiene padre . Suponiendo que el hilo de encontrar no está en ThreadGroup del subproceso actual , subir a la cima del árbol mirando a la matriz del grupo . De esta manera, cuando usted va a encontrar el hilo "Sleeper " , usted sabrá que usted lo ha encontrado ya todas las discusiones activas serán los niños de la rosca padre supremo .

    Tema currentThread Thread.currentThread = ( ) ;

    grupo ThreadGroup = currentThread.getThreadGroup ();

    while ( group.getParent () = null ) {
    grupo

    = group.getParent (); !

    }
    4

    Utilice el método de ThreadGroup agrupar todos los hilos de los niños de esta super padre enumerate (). El método almacena los hilos activos en una matriz

    int activeCount = group.activeCount ( ) .

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

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

    Utilice la matriz activeThreads para ayudar a encontrar el hilo que falta aquí , el que marcó Una vez encontrado, use el DumpStack () para proporcionar un stacktrace de la rosca :

    Tema encontrado = null;

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

    if ( "Sleeper " es igual a ( activeThreads [ i ] getName ()) . ). {

    encontró activeThreads = [ i];

    break;
    < p >} }


    if ( encontrado = null ) {

    found.dumpStack (); }


    6 < p> En la línea de cierre a su método main (), dice que el sistema para salir fuera de la memoria :

    System.exit ( 0 ) ;
    7

    compilar y ejecutar el programa . Mientras que los números de línea en el seguimiento de la pila podría ser levemente diferente basado en cosas como paréntesis, estilo, todos ellos deben proporcionar el mismo rendimiento en general

    java.lang.Exception : . Seguimiento de la pila

    en java . lang.Thread.dumpStack ( Thread.java : 1206 )

    en Find.main ( Find.java : 31 )

    Previous :

    next :
      Artículos relacionados
    ·Cómo hacer un juego de desplazamiento lateral en Java 
    ·Cómo convertir los números primos con el Código de a…
    ·Cómo hacer una nueva conexión en NetBeans 
    ·Cómo introducir múltiples intercepciones en Java 
    ·Cómo obtener las variables macro en Variables Java 
    ·Cómo utilizar CutePDF De Java 
    ·NetBeans servicio Web Tutorial 
    ·Definición de las Palabras Java Reservados 
    ·Cómo ejecutar una secuencia de comandos del programa J…
    ·Cómo agregar Applets Java utilizando programación HTM…
      Artículos destacados
    ·Tipos de datos de Visual Basic 
    ·Cómo agregar API 
    ·¿Cómo puedo crear un enlace a una hoja de cálculo ex…
    ·Función de C Booleanos 
    ·Cómo crear archivos DLL 
    ·Cómo convertir a Double internacional en Java 
    ·¿Cómo se llama al método OnSubmit en un controlador …
    ·Cómo aumentar el tamaño de la matriz en Python 
    ·Cómo usar la magia multiconexiones 
    ·Cómo encontrar Intersecciones curva en Matlab 
    Copyright © Conocimientos Informáticos http://ordenador.wingwit.com