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
- Los subprocesos se crean implementando la interfaz ejecutable.
- 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