Clase java.lang.management.ThreadInfo en Java

La clase java.lang.management.ThreadInfo contiene métodos para obtener información sobre un hilo. Esta información incluye:

  • Id. de subproceso
  • Nombre del hilo
  • Estado del hilo
  • Seguimiento de la pila del hilo
  • El objeto sobre el que se bloquea el hilo.
  • Lista de monitores de objetos que están bloqueados por el subproceso
  • Lista de sincronizadores propios bloqueados por el hilo
  • Número de veces que el hilo ha sido bloqueado
  • El tiempo transcurrido durante el cual el hilo ha estado bloqueado

Sintaxis: declaración de clase

public class ThreadInfo
extends Object

Los métodos de esta clase son los siguientes: 

Métodos Descripción
ThreadInfo de (datos de datos compuestos) Este método se usa para representar estos datos compuestos como un objeto ThreadInfo.
getBlockedCount() Este método se utiliza para saber cuántas veces se ha bloqueado el hilo asociado a este objeto ThreadInfo para entrar en un monitor o volver a entrar en un monitor.
obtenerTiempoBloqueado() Este método se utiliza para saber durante muchos milisegundos que el subproceso asociado con este objeto ThreadInfo se ha bloqueado para ingresar o volver a ingresar a un monitor.
obtenerMonitoresBloqueados() Este método se usa para obtener una lista de objetos ‘ MonitorInfo ‘, que actualmente están bloqueados por el subproceso asociado con este objeto ThreadInfo.
getLockedSynchronizers() Este método se usa para obtener una lista de sincronizadores ‘ propios ‘, que actualmente están bloqueados por el subproceso asociado con este objeto ThreadInfo.
getLockInfo() Este método se usa para obtener información sobre el objeto para el cual el subproceso asociado con este objeto ThreadInfo está bloqueado en espera. Devuelve un objeto ‘ LockInfo ‘ que representa la información.
getLockName() Este método se usa para obtener el nombre del objeto para el cual el subproceso asociado con este objeto ThreadInfo está bloqueado en espera.
getLockOwnerId() Este método se utiliza para obtener el ID del subproceso que posee el objeto que está bloqueando este subproceso.
getLockOwnerName() Este método se utiliza para obtener el Nombre del subproceso que posee el objeto que está bloqueando este subproceso.
obtenerStackTrace() Este método se utiliza para obtener el seguimiento de la pila de un subproceso.
getThreadId() Este método se utiliza para obtener el ID de un subproceso.
getThreadName() Este método se utiliza para obtener el nombre de un hilo.
getThreadState() Este método se utiliza para obtener el estado de un hilo.
getWaitedCount() Este método se utiliza para saber cuántas veces el hilo asociado con este objeto ThreadInfo ha esperado la notificación.
obtenerTiempoEsperado() Este método se usa para saber durante muchos milisegundos que el subproceso asociado con este objeto ThreadInfo ha esperado una notificación.
es en nativo() Este método se usa para determinar si este objeto ThreadInfo está ejecutando el código nativo a través de la interfaz nativa de Java o no.
está suspendido() Este método se usa para determinar si el Thread asociado con este objeto ThreadInfo está suspendido o no.
Enstringr() Este método se usa para obtener una representación de string del objeto ThreadInfo dado.

Implementación:

Ejemplo 1: crear un nuevo objeto ThreadInfo

Java

// Java Program to demonstrate ThreadInfo Class
 
// Importing required libraries
import java.lang.management.ManagementFactory;
import java.lang.management.ThreadInfo;
 
// Main class
public class GFG {
 
    // main driver method
    public static void main(String[] args)
    {
        // Try block to check for exceptions
        try {
 
            // Creating a new thread by
            // creating an object of Thread class
            Thread thread = new Thread();
 
            // running the thread using run() method
            thread.run();
 
            // Getting thread id using getId() method
            long id = thread.getId();
 
            // Creating a new ThreadInfo object
            // using that id
            ThreadInfo info
                = ManagementFactory.getThreadMXBean()
                      .getThreadInfo(id);
 
            // Print and display message on the console
            System.out.println(
                "ThreadInfo object created successfully");
        }
 
        // Catch block to handle the exceptions
        catch (Exception e) {
 
            // print the line number where exception occurs
            e.printStackTrace();
        }
    }
}

Producción:

ThreadInfo object created successfully

Ejemplo 2: subproceso de limpieza común utilizando la clase ThreadInfo

Java

// Java Program to demonstrate ThreadInfo Class
 
// Importing required libraries
import java.lang.management.ManagementFactory;
import java.lang.management.ThreadInfo;
 
// Main class
public class GFG {
 
    // Main driver method
    public static void main(String[] args)
    {
        // try block to check for exceptions
        try {
 
            long id = 10;
 
            // Creating a new ThreadInfo object
            // using this id
            ThreadInfo info
                = ManagementFactory.getThreadMXBean()
                      .getThreadInfo(id);
            // Printing information about the thread
 
            // 1. Printing thread id
            System.out.println("Thread ID: "
                               + info.getThreadId());
            // 2. Printing Thread Name
            System.out.println("Thread Name: "
                               + info.getThreadName());
            // 3. Printing thread State
            System.out.println("Thread State: "
                               + info.getThreadState());
            // 4. Printing thread waited count
            System.out.println("Waited count: "
                               + info.getWaitedCount());
            // 5. Printing thread waited time
            System.out.println("Waited time: "
                               + info.getWaitedTime());
            // 6. Printing how many times this thread had
            // been blocked
            System.out.println("Times blocked: "
                               + info.getBlockedCount());
            // 7. Printing Blocked duration
            System.out.println("Blocked duration: "
                               + info.getBlockedTime());
            // 8. Printing Locked Monitors
            System.out.println("Locked Monitors: "
                               + info.getLockedMonitors());
            // 9. Printing Locked Owner's ID
            System.out.println("Locked Owner's ID: "
                               + info.getLockOwnerId());
            // 10. Printing Locked Owner's Name
            System.out.println("Locked Owner's Name: "
                               + info.getLockOwnerName());
        }
 
        // Catch block to handle the exceptions
        catch (Exception e) {
 
            // Print the line number where exception occurred
            e.printStackTrace();
        }
    }
}

Producción:

Thread ID: 10
Thread Name: Common-Cleaner
Thread State: TIMED_WAITING
Waited count: 1
Waited time: -1
Times blocked: 0
Blocked duration: -1
Locked Monitors: [Ljava.lang.management.MonitorInfo;@15aeb7ab
Locked Owner's ID: -1
Locked Owner's Name: null

Publicación traducida automáticamente

Artículo escrito por abhinavjain194 y traducido por Barcelona Geeks. The original can be accessed here. Licence: CCBY-SA

Deja una respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *