Un subproceso es básicamente un flujo de instrucciones ejecutado secuencialmente. Se utiliza para implementar la multitarea en un programa. Un programa puede tener varios hilos. Los hilos se utilizan para hacer varias cosas al mismo tiempo. Los subprocesos se utilizan básicamente para realizar tareas complicadas en segundo plano sin afectar al programa principal.
Hay dos métodos para mostrar todos los subprocesos en ejecución en Java
1. Usando el objeto ThreadGroup
Java nos proporciona una forma de agrupar múltiples hilos en un solo objeto. En Java, la clase ThreadGroup implementa un grupo de subprocesos, es decir, grupos de subprocesos, por lo que aquí usaremos un objeto ThreadGroup para agrupar todos los subprocesos que se están ejecutando actualmente. Después de esto, usaremos el método activeCount() de ThreadGroup para obtener el número de subprocesos activos, luego usaremos el método enumerate(Thread[] list) de ThreadGroup que copiará los subprocesos actualmente activos en una array, y recorreremos la array para obtener los nombres de todos los subprocesos activos.
Java
// Java Program to display all the running threads using // ThreadGroup object import java.io.*; class GFGThread extends Thread { // overridden run method public void run() { System.out.println("Overridden Run Method"); } } public class GFG { public static void main(String[] args) { // making a thread object GFGThread t1 = new GFGThread(); GFGThread t2 = new GFGThread(); t1.start(); // starting the thread t2.start(); // getting the group of the threads/ ThreadGroup threadGroup = Thread.currentThread().getThreadGroup(); // getting the total active count of the threads int threadCount = threadGroup.activeCount(); Thread threadList[] = new Thread[threadCount]; // enumerating over the thread list threadGroup.enumerate(threadList); System.out.println("Active threads are:"); // iterating over the for loop to get the names of // all the active threads. for (int i = 0; i < threadCount; i++) System.out.println(threadList[i].getName()); } }
2. Usar el método getAllStackTrace()
El método getAllStackTrace() proporciona un seguimiento de pila de todos los subprocesos en ejecución. Luego creamos un conjunto de claves de ese elemento porque el método devuelve un mapa, y luego recorremos todos los elementos del conjunto para imprimir todos los subprocesos en ejecución.
Java
// Java Program to display all the running threads using // getAllStackTraces() Method import java.io.*; import java.lang.*; import java.util.*; class GFGThread extends Thread { // overridden run method public void run() { System.out.println("Overridden Run Method"); } } public class GFG { public static void main(String[] args) { // making a thread object GFGThread t1 = new GFGThread(); GFGThread t2 = new GFGThread(); t1.start(); // starting the thread t2.start(); // getAllStackTraces() method will return the Set of // Thread Objects Set<Thread> threadSet = Thread.getAllStackTraces().keySet(); // iterating over the threads to get the names of // all the active threads for (Thread x : threadSet) { System.out.println(x.getName()); } } }
Producción
Overridden Run Method Overridden Run Method Thread-0 Reference Handler Thread-1 Signal Dispatcher main Finalizer
Publicación traducida automáticamente
Artículo escrito por muazzamfaraaz y traducido por Barcelona Geeks. The original can be accessed here. Licence: CCBY-SA