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