Vor der Einführung des Thread-Konzept konnten wir nicht mehr als eine Aufgabe parallel ausführen. Es war ein Nachteil, und um diesen Nachteil zu beseitigen, Thread-Konzept wurde vorgestellt.
A Faden ist ein sehr leichter Prozess, oder wir können sagen, der kleinste Teil des Prozesses, der es einem Programm ermöglicht, effizienter zu arbeiten, indem mehrere Aufgaben gleichzeitig ausgeführt werden.
sonniges Deol
Um komplizierte Aufgaben im Hintergrund auszuführen, haben wir das verwendet Thread-Konzept in Java . Alle Aufgaben werden ausgeführt, ohne das Hauptprogramm zu beeinträchtigen. In einem Programm oder Prozess haben alle Threads ihren eigenen separaten Pfad zur Ausführung, sodass jeder Thread eines Prozesses unabhängig ist.
Ein weiterer Vorteil der Verwendung Faden Wenn ein Thread zum Zeitpunkt seiner Ausführung eine Ausnahme oder einen Fehler erhält, hat dies keinen Einfluss auf die Ausführung der anderen Threads. Alle Threads teilen sich einen gemeinsamen Speicher und verfügen über einen eigenen Stack, lokale Variablen und einen eigenen Programmzähler. Wenn mehrere Threads gleichzeitig parallel ausgeführt werden, wird dieser Vorgang als bezeichnet Multithreading .
Auf einfache Weise ist ein Thread ein:
- Funktion, mit der wir mehrere Aktivitäten innerhalb eines einzigen Prozesses ausführen können.
- Leichter Prozess.
- Reihe ausgeführter Anweisungen.
- Verschachtelte Folge von Methodenaufrufen.
Thread-Modell
Genau wie ein Prozess existiert ein Thread in mehreren Zuständen. Diese Zustände sind wie folgt:
1) Neu (betriebsbereit)
Ein Thread ist drin Neu wenn es CPU-Zeit bekommt.
2) Laufen
Ein Thread ist drin ein Laufen Geben Sie an, wann es ausgeführt wird.
3) Suspendiert
Ein Thread ist im Ausgesetzt Status, wenn es vorübergehend inaktiv ist oder ausgeführt wird.
4) Blockiert
Ein Thread ist im verstopft Zustand, wenn es auf Ressourcen wartet.
5) Beendet
Ein Thread gelangt in diesen Zustand, wenn er zu einem bestimmten Zeitpunkt seine Ausführung sofort stoppt.
Datenbank Java verbinden
Thread erstellen
Ein Thread wird entweder durch „Erstellen oder Implementieren“ erstellt Ausführbare Schnittstelle oder durch Erweiterung der Thread-Klasse . Dies sind die einzigen zwei Möglichkeiten, wie wir einen Thread erstellen können.
Schauen wir uns die beiden Methoden zum Erstellen eines Threads im Detail an:
Thread-Klasse
A Thread-Klasse verfügt über mehrere Methoden und Konstruktoren, die es uns ermöglichen, verschiedene Operationen an einem Thread auszuführen. Die Thread-Klasse erweitert die Objekt Klasse. Der Objekt Klasse implementiert die Lauffähig Schnittstelle. Die Thread-Klasse verfügt über die folgenden Konstruktoren, die zum Ausführen verschiedener Operationen verwendet werden.
Ausführbare Schnittstelle (run()-Methode)
Die Runnable-Schnittstelle muss von der Klasse implementiert werden, deren Instanzen von einem Thread ausgeführt werden sollen. Die ausführbare Schnittstelle gibt uns das laufen() Methode zum Ausführen einer Aktion für den Thread.
start()-Methode
Die Methode wird zum Starten eines Threads verwendet, den wir neu erstellt haben. Es startet einen neuen Thread mit einem neuen Callstack. Nach der Ausführung des Start() -Methode ändert der Thread den Status von „Neu“ in „Ausführbar“. Es führt die aus run()-Methode wenn der Thread den richtigen Zeitpunkt für die Ausführung erhält.
Nehmen wir ein Beispiel, um zu verstehen, wie wir ein erstellen können Java Thread durch Erweitern der Thread-Klasse:
ThreadExample1.java
// Implementing runnable interface by extending Thread class public class ThreadExample1 extends Thread { // run() method to perform action for thread. public void run() { int a= 10; int b=12; int result = a+b; System.out.println('Thread started running..'); System.out.println('Sum of two numbers is: '+ result); } public static void main( String args[] ) { // Creating instance of the class extend Thread class ThreadExample1 t1 = new ThreadExample1(); //calling start method to execute the run() method of the Thread class t1.start(); } }
Ausgabe:
np.mean
Erstellen eines Threads durch Implementierung der ausführbaren Schnittstelle
In Java können wir auch einen Thread erstellen, indem wir die ausführbare Schnittstelle implementieren. Die ausführbare Schnittstelle stellt uns sowohl die run()-Methode als auch die start()-Methode zur Verfügung.
Nehmen wir ein Beispiel, um zu verstehen, wie wir den Thread mithilfe der ausführbaren Schnittstelle erstellen, starten und ausführen können.
ThreadExample2.java
class NewThread implements Runnable { String name; Thread thread; NewThread (String name){ this.name = name; thread = new Thread(this, name); System.out.println( 'A New thread: ' + thread+ 'is created ' ); thread.start(); } public void run() { try { for(int j = 5; j > 0; j--) { System.out.println(name + ': ' + j); Thread.sleep(1000); } }catch (InterruptedException e) { System.out.println(name + ' thread Interrupted'); } System.out.println(name + ' thread exiting.'); } } class ThreadExample2 { public static void main(String args[]) { new NewThread('1st'); new NewThread('2nd'); new NewThread('3rd'); try { Thread.sleep(8000); } catch (InterruptedException excetion) { System.out.println('Inturruption occurs in Main Thread'); } System.out.println('We are exiting from Main Thread'); } }
Ausgabe:
Im obigen Beispiel führen wir das Multithreading durch, indem wir die ausführbare Schnittstelle implementieren. Um mehr über Multithreading zu erfahren, klicken Sie hier .