Ein Thread ist im Grunde ein sequenziell ausgeführter Befehlsstrom. Es wird verwendet, um Multitasking in einem Programm zu implementieren. Ein Programm kann mehrere Threads haben. Threads werden verwendet, um mehrere Dinge gleichzeitig zu tun. Threads werden grundsätzlich verwendet, um komplizierte Aufgaben im Hintergrund auszuführen, ohne das Hauptprogramm zu beeinträchtigen.

Es gibt zwei Methoden, um alle laufenden Threads in Java anzuzeigen

1. Verwenden des ThreadGroup-Objekts

Java bietet uns eine Möglichkeit, mehrere Threads in einem einzigen Objekt zu gruppieren. In Java wird eine Gruppe von Threads, dh Thread-Gruppen, durch die ThreadGroup-Klasse implementiert, daher verwenden wir hier ein ThreadGroup-Objekt, um alle derzeit laufenden Threads zu gruppieren. Danach verwenden wir die Methode activeCount() von ThreadGroup, um die Anzahl der aktiven Threads abzurufen, dann verwenden wir die Methode enumerate(Thread[] list) von ThreadGroup, die die derzeit aktiven Threads in ein Array kopiert, und Wir werden das Array durchlaufen, um die Namen aller aktiven Threads zu erhalten.

Java

// Java Program to display all the runnning threads using
// ThreadGroup object
  
import java.io.*;
  
class GFGThread extends Thread {
    // overriden run method
    public void run()
    {
        System.out.println("Overriden 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 tread
        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. Verwendung der Methode getAllStackTrace()

Die Methode getAllStackTrace() liefert einen Stack-Trace aller laufenden Threads. Dann erstellen wir einen Satz der Schlüssel dieses Elements, da die Methode eine Zuordnung zurückgibt, und dann durchlaufen wir alle Elemente des Satzes, um alle laufenden Threads auszugeben.

Java

// Java Program to display all the runnning threads using
// getAllStackTraces() Method
import java.io.*;
import java.lang.*;
import java.util.*;
  
class GFGThread extends Thread {
    
    // overriden run method
    public void run()
    {
        System.out.println("Overriden 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 tread
        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());
        }
    }
}

 Ausgabe

Overriden Run Method
Overriden Run Method
Thread-0
Reference Handler
Thread-1
Signal Dispatcher
main
Finalizer