¿Cómo mostrar el estado de todos los subprocesos en Java?

Los subprocesos son procesos livianos dentro de un proceso. Los subprocesos múltiples en Java son una característica que permite la ejecución simultánea de dos o más partes de un programa para maximizar la utilización de la CPU. aquí el enfoque para recuperar el estado del hilo es a través del método getState() de la clase Thread . Un subproceso java puede existir en cualquiera de los siguientes estados, el estado de un subproceso es el estado en el que existe en una instancia determinada. El ciclo de vida de un subproceso , como se muestra arriba, es la mejor manera de obtener más información sobre los estados, donde los estados son los siguientes:

  • Nuevo
  • Ejecutable
  • Obstruido
  • Esperando
  • Espera cronometrada
  • Terminado

Nota: cuando se ejecuta un subproceso, todos los demás subprocesos están en estado de bloqueo y no en estado de espera.

Procedimiento: visualización del estado del hilo

  1. Los subprocesos se crean implementando la interfaz ejecutable.
  2. El estado de un subproceso se puede recuperar mediante el método getState() del objeto de clase Subproceso.

Ejemplo:

Java

// Java Program to Display all Threads Status
 
// Importing Set class from java.util package
import java.util.Set;
 
// Class 1
// helper Class implementing Runnable interface
class MyThread implements Runnable {
 
    // run() method whenever thread is invoked
    public void run()
    {
 
        // Try block to check for exceptions
        try {
 
            // making thread to
            Thread.sleep(2000);
        }
 
        // Catch block to handle the exceptions
        catch (Exception err) {
 
            // Print the exception
            System.out.println(err);
        }
    }
}
 
// Class 2
// Main Class to check thread status
public class GFG {
 
    // Main driver method
    public static void main(String args[]) throws Exception
    {
 
        // Iterating to create multiple threads
        // Customly creating 5 threads
        for (int thread_num = 0; thread_num < 5;
             thread_num++) {
 
            // Creating single thread object
            Thread t = new Thread(new MyThread());
 
            // Setting name of the particular thread
            // using setName() method
            t.setName("MyThread:" + thread_num);
 
            // Starting the current thread
            // using start() method
            t.start();
        }
 
        // Creating set object to hold all the threads where
        // Thread.getAllStackTraces().keySet() returns
        // all threads including application threads and
        // system threads
        Set<Thread> threadSet
            = Thread.getAllStackTraces().keySet();
 
        // Now, for loop is used to iterate through the
        // threadset
        for (Thread t : threadSet) {
 
            // Printing the thread status using getState()
            // method
            System.out.println("Thread :" + t + ":"
                               + "Thread status : "
                               + t.getState());
        }
    }
}

 
 Producción:
 

Publicación traducida automáticamente

Artículo escrito por pulamolusaimohan 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 *