Unterschied zwischen Runnable und Thread

Inhaltsverzeichnis:

Unterschied zwischen Runnable und Thread
Unterschied zwischen Runnable und Thread

Video: Unterschied zwischen Runnable und Thread

Video: Unterschied zwischen Runnable und Thread
Video: Thread и Runnable. Java Professional. Урок 13 2024, Dezember
Anonim

Hauptunterschied – Runnable vs. Thread

Ein Programm in Ausführung wird als Prozess bezeichnet. Der Prozess kann in mehrere Teilprozesse unterteilt werden. Beispielsweise ist Microsoft Word ein Prozess. Gleichzeitig prüft es auf Rechtschreibfehler und Grammatik. Das ist ein Teilprozess. Diese Teilprozesse werden als Threads bezeichnet. Multithreading ist der Prozess der gleichzeitigen Ausführung mehrerer Threads. Threaded-Anwendungen können mit verschiedenen Programmiersprachen erstellt werden. Runnable und Thread sind mit der Java-Programmierung verbunden. Es gibt zwei Methoden in Java, um einen Thread zu erstellen, indem eine Runnable-Schnittstelle implementiert oder die Thread-Klasse erweitert wird. Bei der Implementierung von Runnable können viele Threads dasselbe Threadobjekt gemeinsam nutzen, während in der Extending-Thread-Klasse jedem Thread ein eindeutiges Objekt zugeordnet ist. Das ist der Hauptunterschied zwischen Runnable und Thread.

Was ist Runnable?

Ein Thread durchläuft einige Zustände. Das „Neue“ist der Beginn des Thread-Lebenszyklus. Nachdem die Methode start() einen neuen Thread aufgerufen hat, wird er lauffähig. Wenn der Thread-Scheduler den Thread auswählt, geht er in den Ausführungszustand über. Der Thread wartet auf den Zustand, wenn dieser Thread darauf wartet, dass ein anderer Thread eine Aufgabe ausführt. Nachdem der Thread die Arbeit abgeschlossen hat, wechselt er in den Beendigungszustand.

Ein Thread kann über die Runnable-Schnittstelle implementiert werden. Siehe untenstehendes Programm.

Unterschied zwischen Runnable und Thread
Unterschied zwischen Runnable und Thread

Abbildung 01: Java-Programm zum Erstellen eines Threads mit Runnable-Schnittstelle

Gemäß obigem Programm implementiert die Klasse Runnable Demo die Runnable-Schnittstelle. Die Methode run() befindet sich innerhalb der Klasse, die die Runnable-Schnittstelle implementiert. Es ist der Einstiegspunkt für den Thread. Die Logik befindet sich in der Methode run(). Im Hauptprogramm wird ein Thread erstellt, indem ein Objekt definiert wird, das von der Runnable Demo-Klasse instanziiert wird. Es ist t1. Die Methode start() wird mit t1 aufgerufen.

Beziehen Sie sich auf das untenstehende Programm.

Unterschied zwischen Runnable und Thread_Figure 02
Unterschied zwischen Runnable und Thread_Figure 02

Abbildung 02: Java-Programm zum Erstellen eines Threads zum Ausführen einer Schleife durch Implementieren der Runnable-Schnittstelle

Gemäß obigem Beispiel implementiert die Klasse Runnable Demo die Runnable-Schnittstelle. Die mit dem Thread auszuführende Logik ist in der Methode run() geschrieben. Im Hauptprogramm wird ein Thread erstellt, indem ein Objekt definiert wird, das von der Runnable Demo-Klasse instanziiert wird. Es ist t1. Dann wird die Methode start() mit t1 aufgerufen.

Was ist Thread?

Die andere Methode zum Erstellen eines Threads ist die Erweiterung der Thread-Klasse. Es besteht aus drei Schritten. Zuerst muss die Klasse als Erweiterung der Thread-Klasse deklariert werden. Danach sollte die Methode run() geschrieben werden. Es enthält die Abfolge von Schritten, die der Thread ausführen soll. Schließlich wird das Thread-Objekt erstellt und die Methode start() wird aufgerufen, um die Ausführung des Threads zu initiieren. Siehe untenstehendes Programm.

Unterschied zwischen Runnable und Thread_Figure 03
Unterschied zwischen Runnable und Thread_Figure 03

Abbildung 03: Java-Programm, das die Thread-Klasse erweitert

Gemäß obigem Programm erweitert die MyThread-Klasse die Thread-Klasse. Sie überschreibt die run-Methode. Die Methode run() 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 mit zwei Klassen, die die Thread-Klasse erweitern, ist wie folgt.

Hauptunterschied zwischen Runnable und Thread
Hauptunterschied zwischen Runnable und Thread

Abbildung 04: Java-Programm mit zwei Klassen, die die Thread-Klasse erweitern

Gemäß obigem Programm erweitern sowohl Klasse A als auch Klasse B die Thread-Klasse. Beide Klassen haben ihre Implementierung der Methode run(). Der Haupt-Thread ist der, der die Methode main() ausführt. Bevor der Haupt-Thread stirbt, erstellt und startet er Thread1 und Thread2. Bis der Haupt-Thread das Ende der Hauptmethode erreicht hat, laufen drei Threads parallel. Es gibt keine bestimmte Reihenfolge, in der die Threads Ausgaben liefern. Sobald der Thread gestartet ist, ist es schwierig, die Reihenfolge zu bestimmen, in der sie ausgeführt werden. Sie laufen unabhängig voneinander.

Was sind die Ähnlichkeiten zwischen Runnable und Thread?

Beide werden verwendet, um einen Thread in Java zu erstellen

Was ist der Unterschied zwischen Runnable und Thread?

Runnable vs. Thread

Runnable ist eine Schnittstelle in Java zum Erstellen eines Threads, der es vielen Threads ermöglicht, dasselbe Thread-Objekt gemeinsam zu nutzen. Der Thread ist eine Klasse in Java zum Erstellen eines Threads, wobei jedem Thread ein eindeutiges Objekt zugeordnet ist.
Speicher
In Runnable teilen sich 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
Nachdem die Runnable-Schnittstelle implementiert wurde, kann sie eine Klasse erweitern. Mehrere Vererbungen werden in Java nicht unterstützt. Nach der Erweiterung der Thread-Klasse kann keine andere Klasse erweitert werden.
Code Wartbarkeit
Ausführbare Schnittstelle macht Code wartbarer. In der Thread-Klasse ist die Wartung zeitaufwändig.

Zusammenfassung – Runnable vs. Thread

Ein Prozess ist in mehrere Teilprozesse unterteilt, um mehrere Aufgaben gleichzeitig auszuführen. Diese Teilprozesse 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 Praxis der objektorientierten Programmierung. Bei der Implementierung von Runnable können viele Threads dasselbe Thread-Objekt gemeinsam nutzen, während bei der Erweiterung 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 verbrauchen.

Runnable vs. Thread als PDF herunterladen

Sie können die PDF-Version dieses Artikels herunterladen und gemäß Zitationshinweis für Offline-Zwecke verwenden. Bitte laden Sie die PDF-Version hier herunter. Unterschied zwischen Runnable und Thread

Empfohlen: