Thread-ID in Java abrufen

  1. Thread-ID mit Thread.getId() in Java abrufen
  2. Aktuelle Thread-Pool-ID mit Thread.currentThread().getId() in Java abrufen

In diesem Lernprogramm werden Methoden zum Abrufen der Thread-ID in Java vorgestellt. Wir werden auch sehen, wie wir die ID des aktuellen Threads aus einem Thread-Pool abrufen können.

Thread-ID mit Thread abrufen.getId() in Java

In diesem Beispiel haben wir eine Klasse Task erstellt, die die Klasse Runnable implementiert, da wir ihre Methode run() benötigen, um den Thread auszuführen. Die Task -Klasse übernimmt einen Thread-Namen von ihrem Konstruktor, und die run() -Methode druckt ihn auf der Konsole, wenn er ausgeführt wird.

In der main() -Methode erstellen wir zwei Task -Objekte im Konstruktor und dann zwei Threads-Objekte, in denen wir task1 und task2 übergeben, um die Aufgaben zuzuweisen.

Wir rufen die start() -Methode mit thread1 und thread2 auf, um die Threads auszuführen. Sobald die Threads ausgeführt wurden, können wir die ID jedes Threads mit thread.getId() abrufen, wodurch die ID als long zurückgegeben wird.

Ausgang:

Thread1's ID is: 13Thread2's ID is: 14Executing Task 2Executing Task 1

Aktuelle Thread-Pool-ID mit Thread abrufen.In: currentThread().getId() in Java

Thread-Pools sind vorteilhaft, wenn es um die schwere Ausführung von Aufgaben geht. Im folgenden Beispiel erstellen wir einen Thread-Pool mit Executors.newFixedThreadPool(numberOfThreads) . Wir können die Anzahl der Threads angeben, die wir im Pool haben möchten.

Die Klasse Task ist für die Ausführung des Threads in der Methode run() verantwortlich. Es ist eine einfache Klasse, die den Namen des Threads festlegt und im Konstruktor übergibt. Um mehrere Aufgaben zu erstellen, verwenden wir eine for -Schleife, in der fünf task -Objekte erstellt und fünf Threads im Pool ausgeführt werden.

Unser Ziel ist es, die ID jedes Threads abzurufen, der gerade ausgeführt wird. Dazu verwenden wir Thread.currentThread().getId() , das die ID des aktuellen Threads zurückgibt. In der Ausgabe sehen wir die IDs aller Threads, die die einzelnen Aufgaben ausführen.

Sobald die Aufgaben abgeschlossen sind, sollten wir die Ausführung des Thread-Pools mit threadExecutor.shutdown() beenden. !threadExecutor.isTerminated() wird verwendet, um zu warten, bis threadExecutor beendet wurde.

Ausgang:

Created Task: Task 0Created Task: Task 1Created Task: Task 2Created Task: Task 3Created Task: Task 4Executing: Task 0Executing: Task 2Executing: Task 1Executing: Task 4Executing: Task 3Task 0 is on thread id #13Task 1 is on thread id #14Task 4 is on thread id #17Task 2 is on thread id #15Task 3 is on thread id #16All threads have completed their tasks

In Verbindung stehender Artikel – Java-Thread

  • Kill-Thread in Java
  • Schreibe einen Kommentar

    Deine E-Mail-Adresse wird nicht veröffentlicht.