Hauptunterschied - Runnable vs Thread
Ein ausgeführtes Programm wird als Prozess bezeichnet. Der Prozess kann in mehrere Unterprozesse unterteilt werden. Beispielsweise ist Microsoft Word ein Prozess. Gleichzeitig wird nach Rechtschreibfehlern und Grammatik gesucht. Das ist ein Teilprozess. Diese Unterprozesse werden als Threads bezeichnet. Beim Multithreading werden mehrere Threads gleichzeitig ausgeführt. Threaded-Anwendungen können mit verschiedenen Programmiersprachen erstellt werden. Runnable und Thread sind mit der Java-Programmierung verbunden. In Java gibt es zwei Methoden, um einen Thread zu erstellen, indem eine ausführbare Schnittstelle implementiert oder die Thread-Klasse erweitert wird. Bei der Implementierung von Runnable können viele Threads dasselbe Thread-Objekt gemeinsam nutzen, während in der Klasse "Thread erweitern" jedem Thread ein eindeutiges Objekt zugeordnet ist. Das ist der Hauptunterschied zwischen Runnable und Thread.
INHALT
1. Übersicht und
Hauptunterschied 2. Was ist lauffähig
3. Was ist Thread
4. Ähnlichkeiten zwischen lauffähig und Thread
5. Nebeneinander Vergleich - Runbar gegen Thread in tabellarischer Form
6. Zusammenfassung
Was ist lauffähig?
Ein Thread durchläuft einige Zustände. Das „Neue“ist der Beginn des Thread-Lebenszyklus. Nachdem die Methode start () einen neuen Thread aufgerufen hat, kann dieser ausgeführt werden. Wenn der Thread-Scheduler den Thread auswählt, wechselt er in den laufenden Zustand. Der Thread wartet auf den Status, wenn dieser Thread darauf wartet, dass ein anderer Thread eine Aufgabe ausführt. Nachdem der Thread die Arbeit abgeschlossen hat, wechselt er in den Beendigungsstatus.
Ein Thread kann über die Runnable-Schnittstelle implementiert werden. Siehe das folgende Programm.
Abbildung 01: Java-Programm zum Erstellen eines Threads mithilfe der Runnable-Schnittstelle
Gemäß dem obigen Programm implementiert die Klasse Runnable Demo die Runnable-Schnittstelle. Die run () -Methode befindet sich in der Klasse, die die Runnable-Schnittstelle implementiert. Es ist der Einstiegspunkt für den Thread. Die Logik befindet sich in der run () -Methode. Im Hauptprogramm wird ein Thread erstellt, indem ein Objekt definiert wird, das aus der Runnable Demo-Klasse instanziiert wurde. Es ist t1. Die Methode start () wird mit t1 aufgerufen.
Siehe das folgende Programm.
Abbildung 02: Java-Programm zum Erstellen eines Threads zum Ausführen einer Schleife durch Implementieren der Runnable-Schnittstelle
Gemäß dem obigen Beispiel implementiert die Klasse Runnable Demo die Runnable-Schnittstelle. Die Logik, die mit dem Thread ausgeführt werden soll, ist in der Methode run () geschrieben. Im Hauptprogramm wird ein Thread erstellt, indem ein Objekt definiert wird, das aus der Runnable Demo-Klasse instanziiert wurde. Es ist t1. Dann wird die start () -Methode mit t1 aufgerufen.
Was ist Thread?
Die andere Methode zum Erstellen eines Threads besteht darin, die Thread-Klasse zu erweitern. Es besteht aus drei Schritten. Zunächst muss die Klasse als Erweiterung der Thread-Klasse deklariert werden. Anschließend sollte die run () -Methode geschrieben werden. Es hat die Reihenfolge der Schritte, die der Thread ausführen soll. Schließlich wird das Thread-Objekt erstellt und die start () -Methode aufgerufen, um die Ausführung des Threads zu initiieren. Siehe das folgende Programm.
Abbildung 03: Java-Programm, das die Thread-Klasse erweitert
Gemäß dem obigen Programm erweitert die MyThread-Klasse die Thread-Klasse. Es überschreibt die Ausführungsmethode. Die run () -Methode enthält die vom Thread auszuführende Logik. Es ist der Einstiegspunkt in den Thread. Dann wird das Thread-Objekt erstellt. Es ist thread1. Der Thread wird mit der Methode start () gestartet. Es wird ein Aufruf der Methode run () ausgeführt.
Ein Beispielprogramm für zwei Klassen, die die Thread-Klasse erweitern, lautet wie folgt.
Abbildung 04: Java-Programm mit zwei Klassen, die die Thread-Klasse erweitern
Gemäß dem obigen Programm erweitern sowohl Klasse A als auch Klasse B die Thread-Klasse. Beide Klassen haben die Implementierung der run () -Methode. Der Hauptthread führt die main () -Methode aus. Bevor der Haupt-Thread stirbt, erstellt und startet er Thread1 und Thread2. Bis der Hauptthread das Ende der Hauptmethode erreicht hat, werden drei Threads parallel ausgeführt. Es gibt keine bestimmte Reihenfolge, in der die Threads ausgegeben werden. Sobald der Thread gestartet ist, ist es schwierig, die Reihenfolge zu bestimmen, in der er ausgeführt wird. Sie laufen unabhängig voneinander.
Was sind die Ähnlichkeiten zwischen Runnable und Thread?
Beide verwenden, um einen Thread in Java zu erstellen
Was ist der Unterschied zwischen Runnable und Thread?
Diff Artikel Mitte vor Tabelle
Runnable vs Thread |
|
Runnable ist eine Schnittstelle in Java zum Erstellen eines Threads, mit dem viele Threads dasselbe Threadobjekt gemeinsam nutzen können. | Der Thread ist eine Klasse in Java, um einen Thread zu erstellen, dem jeder Thread ein eindeutiges Objekt zugeordnet ist. |
Erinnerung | |
In Runnable verwenden mehrere Threads dasselbe Objekt und benötigen daher weniger Speicher. | In der Thread-Klasse erstellt jeder Thread ein eindeutiges Objekt und benötigt daher mehr Speicher. |
Fähigkeit erweitern | |
Nach der Implementierung der Runnable-Schnittstelle kann eine Klasse erweitert werden. | Mehrfachvererbungen werden in Java nicht unterstützt. Nach dem Erweitern der Thread-Klasse kann keine andere Klasse erweitert werden. |
Code-Wartbarkeit | |
Die ausführbare Schnittstelle macht den Code wartbarer. | In der Thread-Klasse ist die Wartung zeitaufwändig. |
Zusammenfassung - Runnable vs Thread
Ein Prozess ist in mehrere Unterprozesse unterteilt, um mehrere Aufgaben gleichzeitig auszuführen. Diese Unterprozesse werden als Threads bezeichnet. Das Instanziieren eines Threads kann durch Implementieren der Runnable-Schnittstelle oder durch Erweitern der Thread-Klasse erfolgen. Es ist einfach, die Thread-Klasse zu erweitern, aber es ist keine bessere objektorientierte Programmierpraxis. Bei der Implementierung von Runnable können viele Threads dasselbe Thread-Objekt gemeinsam nutzen, während beim Erweitern der Thread-Klasse jedem Thread ein eindeutiges Objekt zugeordnet ist. Das ist der Unterschied zwischen Runnable und Thread. In der Thread-Klasse kann die Erstellung mehrerer Objekte mehr Speicher belegen.
Laden Sie das PDF von Runnable vs Thread herunter
Sie können die PDF-Version dieses Artikels herunterladen und gemäß Zitierhinweis für Offline-Zwecke verwenden. Bitte laden Sie die PDF-Version hier herunter. Unterschied zwischen Runnable und Thread