Verschil tussen Runnable en Thread

Belangrijkste verschil - Runnable vs Thread
 

Een programma in uitvoering staat bekend als een proces. Het proces kan worden onderverdeeld in meerdere subprocessen. Microsoft Word is bijvoorbeeld een proces. Tegelijkertijd controleert het de spelfout en grammatica. Dat is een subproces. Deze subprocessen staan ​​bekend als threads. Multithreading is het proces waarbij meerdere threads tegelijkertijd worden uitgevoerd. Threaded applicaties kunnen worden gebouwd met behulp van verschillende programmeertalen. Runnable en Thread worden geassocieerd met Java-programmering. Er zijn twee methoden in Java om een ​​thread te maken door een Runnable-interface te implementeren of de Thread-klasse uit te breiden. Wanneer u Runnable implementeert, kunnen veel threads hetzelfde thread-object delen in de klasse Threading, elke thread heeft een uniek object dat hieraan is gekoppeld. Dat is de belangrijk verschil tussen Runnable en Thread.

INHOUD

1. Overzicht en belangrijkste verschil
2. Wat is Runnable
3. Wat is Thread
4. Overeenkomsten tussen Runnable en Thread
5. Vergelijking zij aan zij - Runnable vs Thread in tabelvorm
6. Samenvatting

Wat is Runnable?

Een draad doorloopt enkele toestanden. Het "nieuwe" is het begin van de levenscyclus van de draad. Nadat de methode start () een nieuwe thread aanroept, wordt deze uitvoerbaar. Als de threadplanner de thread selecteert, wordt deze doorgeschakeld naar de actieve status. De thread wacht op de status als die thread wacht op een andere thread om een ​​taak uit te voeren. Nadat de thread het werk heeft voltooid, gaat het naar de beëindigingsstatus.

Een thread kan worden geïmplementeerd met behulp van de interface Runnable. Raadpleeg het onderstaande programma.

Afbeelding 01: Java-programma om een ​​thread te maken met de interface Runnable

Volgens het bovenstaande programma implementeert de klasse Runnable Demo de Runnable-interface. De methode run () bevindt zich in de klasse met de interface Runnable. Het is het toegangspunt voor de thread. De logica bevindt zich in de methode run (). In het hoofdprogramma wordt een thread gemaakt door een object te definiëren dat is geïnitialiseerd vanuit de klasse Runnable Demo. Het is t1. De methode start () wordt aangeroepen met t1.

Raadpleeg het onderstaande programma.

Figuur 02: Java-programma om een ​​thread te maken om een ​​lus uit te voeren, door de Runnable-interface te implementeren

Volgens het bovenstaande voorbeeld implementeert de klasse Runnable Demo Runnable-interface. De logica om uit te voeren met behulp van de thread is geschreven in de methode run (). In het hoofdprogramma wordt een thread gemaakt door een object te definiëren dat is geïnitialiseerd vanuit de klasse Runnable Demo. Het is t1. Vervolgens wordt de methode start () aangeroepen met t1.

Wat is Thread?

De andere methode om een ​​thread te maken is door de Thread-klasse uit te breiden. Het bestaat uit drie stappen. Ten eerste moet de klasse worden verklaard als uitbreiding van de Thread-klasse. Daarna moet de methode run () worden geschreven. Het heeft de reeks stappen die de thread moet uitvoeren. Ten slotte wordt het thread-object gemaakt en wordt de methode start () aangeroepen om de uitvoering van de thread te starten. Raadpleeg het onderstaande programma.

Figuur 03: Java-programma dat de Thread-klasse uitbreidt

Volgens het bovenstaande programma breidt de MyThread-klasse de Thread-klasse uit. Het overschrijft de run-methode. De methode run () bevat de logica die moet worden uitgevoerd door de thread. Het is het toegangspunt tot de thread. Vervolgens wordt het draadobject gemaakt. Het is thread1. De thread wordt gestart met de methode start (). Het zal een methode van aanroep uitvoeren () uitvoeren.

Een voorbeeldprogramma van twee klassen die de Thread-klasse uitbreiden, is als volgt.

Afbeelding 04: Java-programma met twee klassen die de Thread-klasse uitbreiden

Volgens het bovenstaande programma breiden klasse A en B de Thread-klasse uit. Beide klassen hebben hun implementatie van de methode run (). De rode draad is de methode main (). Voordat de hoofddraad sterft, maakt en start thread1 en thread2. Tegen de tijd dat de hoofddraad het einde van de hoofdmethode bereikt, lopen er drie threads parallel. Er is geen specifieke volgorde waarin de threads uitvoer geven. Zodra de thread is gestart, is het moeilijk om de volgorde te bepalen die ze zullen uitvoeren. Ze werken onafhankelijk.

Wat zijn de overeenkomsten tussen Runnable en Thread?

  • Beide gebruiken om een ​​thread in Java te maken.

Wat is het verschil tussen Runnable en Thread?

Runnable vs Thread

Runnable is een interface in Java om een ​​thread te maken waarmee veel threads hetzelfde thread-object kunnen delen. De thread is een klasse in Java om een ​​thread te maken waarbij aan elke thread een uniek object is gekoppeld.
 Geheugen
In Runnable delen meerdere threads hetzelfde object, dus vereisen minder geheugen. In de klasse Thread maakt elke thread een uniek object en vereist daarom meer geheugen.
De mogelijkheid uitbreiden
Nadat de Runnable-interface is geïmplementeerd, kan deze een klasse uitbreiden. Meerdere erfenissen worden niet ondersteund in Java. Nadat de Thread-klasse is verlengd, kan deze geen andere klasse uitbreiden.
 Code Onderhoudbaarheid
Uitvoerbare interface maakt code beter te onderhouden. In de Thread-klasse is onderhoud tijdrovend.

Samenvatting - Runnable vs Thread 

Een proces is onderverdeeld in meerdere subprocessen om meerdere taken tegelijkertijd uit te voeren. Deze subprocessen staan ​​bekend als threads. Het instantiëren van een thread kan worden gedaan door de Runnable-interface te implementeren of door de Thread Class uit te breiden. Het is eenvoudig om de Thread-klasse uit te breiden, maar het is geen betere Object-Oriented Programming-praktijk. Wanneer Runnable wordt geïmplementeerd, kunnen veel threads hetzelfde thread-object delen, terwijl bij het verlengen van de Thread-klasse elke thread een uniek object eraan gekoppeld heeft. Dat is het verschil tussen Runnable en Thread. In de Thread-klasse kan het maken van meerdere objecten meer geheugen in beslag nemen.

Download de PDF van Runnable vs Thread

U kunt de PDF-versie van dit artikel downloaden en gebruiken voor offline doeleinden, zoals per citaatnotitie. Download de PDF-versie hier Difference Between Runnable and Thread

Referentie:

1.tutorialspoint.com. "Java Multithreading." Het punt, Beschikbaar Hier 
2.Pramodbablad. "Breidt Thread Vs-implementaties uit die in Java kunnen worden uitgevoerd". Java Concept Of The Day, 11 november 2016. Beschikbaar Hier
3.Ways om een ​​thread te maken in Java Multithreading | Core Java-zelfstudie | Studytonight. Beschikbaar Hier