logo

Java-Threads | So erstellen Sie einen Thread in Java

Es gibt zwei Möglichkeiten, einen Thread zu erstellen:

  1. Durch Erweiterung der Thread-Klasse
  2. Durch die Implementierung der Runnable-Schnittstelle.

Thread-Klasse:

Die Thread-Klasse stellt Konstruktoren und Methoden zum Erstellen und Ausführen von Vorgängen für einen Thread bereit. Die Thread-Klasse erweitert die Object-Klasse und implementiert die Runnable-Schnittstelle.

Häufig verwendete Konstruktoren der Thread-Klasse:

  • Faden()
  • Thread(String-Name)
  • Thread(Runnable r)
  • Thread(Ausführbares r,Stringname)

Häufig verwendete Methoden der Thread-Klasse:

    public void run():wird verwendet, um eine Aktion für einen Thread auszuführen.public void start():startet die Ausführung des Threads. JVM ruft die run()-Methode für den Thread auf.öffentlicher Leerschlaf (lange Millisekunden):Bewirkt, dass der aktuell ausgeführte Thread für die angegebene Anzahl von Millisekunden in den Ruhezustand versetzt (die Ausführung vorübergehend anhält).public void join():wartet darauf, dass ein Thread stirbt.öffentlicher Void-Join (lange Millisekunden):wartet für die angegebenen Millisekunden darauf, dass ein Thread stirbt.public int getPriority():gibt die Priorität des Threads zurück.public int setPriority(int priorität):Ändert die Priorität des Threads.öffentlicher String getName():gibt den Namen des Threads zurück.public void setName(String name):ändert den Namen des Threads.öffentlicher Thread currentThread():gibt die Referenz des aktuell ausgeführten Threads zurück.public int getId():gibt die ID des Threads zurück.public Thread.State getState():gibt den Status des Threads zurück.öffentlicher boolescher Wert isAlive():testet, ob der Thread aktiv ist.public void yield():bewirkt, dass das aktuell ausgeführte Thread-Objekt vorübergehend angehalten wird und die Ausführung anderer Threads ermöglicht wird.public void suspend():wird verwendet, um den Thread anzuhalten (veraltet).öffentlicher leerer Lebenslauf():wird verwendet, um den angehaltenen Thread fortzusetzen (veraltet).public void stop():wird verwendet, um den Thread zu stoppen (veraltet).öffentlicher boolescher Wert isDaemon():testet, ob der Thread ein Daemon-Thread ist.public void setDaemon(boolean b):Markiert den Thread als Daemon oder Benutzer-Thread.public void interrupt():unterbricht den Thread.öffentlicher boolescher Wert isInterrupted():testet, ob der Thread unterbrochen wurde.öffentlicher statischer boolescher Wert interrupted():testet, ob der aktuelle Thread unterbrochen wurde.

Ausführbare Schnittstelle:

Die Runnable-Schnittstelle sollte von jeder Klasse implementiert werden, deren Instanzen von einem Thread ausgeführt werden sollen. Die ausführbare Schnittstelle verfügt nur über eine Methode namens run().

C++-GUI
    public void run():wird verwendet, um eine Aktion für einen Thread auszuführen.

Einen Thread starten:

Der start()-Methode der Thread-Klasse wird verwendet, um einen neu erstellten Thread zu starten. Es übernimmt folgende Aufgaben:

  • Ein neuer Thread startet (mit neuem Callstack).
  • Der Thread wechselt vom Status „Neu“ in den Status „Ausführbar“.
  • Wenn der Thread ausgeführt werden kann, wird seine Zielmethode run() ausgeführt.

1) Java-Thread-Beispiel durch Erweiterung der Thread-Klasse

Dateiname: Multi.java

 class Multi extends Thread{ public void run(){ System.out.println('thread is running...'); } public static void main(String args[]){ Multi t1=new Multi(); t1.start(); } } 

Ausgabe:

 thread is running... 

2) Java-Thread-Beispiel durch Implementierung der Runnable-Schnittstelle

Dateiname: Multi3.java

 class Multi3 implements Runnable{ public void run(){ System.out.println('thread is running...'); } public static void main(String args[]){ Multi3 m1=new Multi3(); Thread t1 =new Thread(m1); // Using the constructor Thread(Runnable r) t1.start(); } } 

Ausgabe:

 thread is running... 

Wenn Sie die Thread-Klasse nicht erweitern, wird Ihr Klassenobjekt nicht als Thread-Objekt behandelt. Daher müssen Sie das Thread-Klassenobjekt explizit erstellen. Wir übergeben das Objekt Ihrer Klasse, das Runnable implementiert, damit die run()-Methode Ihrer Klasse ausgeführt werden kann.

3) Verwendung der Thread-Klasse: Thread(String Name)

Wir können die Thread-Klasse direkt verwenden, um neue Threads mithilfe der oben definierten Konstruktoren zu erzeugen.

Konvertieren Sie einen String in ein Zeichen

Dateiname: MyThread1.java

 public class MyThread1 { // Main method public static void main(String argvs[]) { // creating an object of the Thread class using the constructor Thread(String name) Thread t= new Thread('My first thread'); // the start() method moves the thread to the active state t.start(); // getting the thread name by invoking the getName() method String str = t.getName(); System.out.println(str); } } 

Ausgabe:

 My first thread 

4) Verwenden der Thread-Klasse: Thread(Runnable r, String name)

Beachten Sie das folgende Programm.

Dateiname: MyThread2.java

10 ml bis oz
 public class MyThread2 implements Runnable { public void run() { System.out.println('Now the thread is running ...'); } // main method public static void main(String argvs[]) { // creating an object of the class MyThread2 Runnable r1 = new MyThread2(); // creating an object of the class Thread using Thread(Runnable r, String name) Thread th1 = new Thread(r1, 'My new thread'); // the start() method moves the thread to the active state th1.start(); // getting the thread name by invoking the getName() method String str = th1.getName(); System.out.println(str); } } 

Ausgabe:

 My new thread Now the thread is running ...