Belangrijkste verschil - Runnable versus Thread
Een programma dat wordt uitgevoerd, staat bekend als een proces. Het proces kan worden onderverdeeld in meerdere deelprocessen. Microsoft Word is bijvoorbeeld een proces. Tegelijkertijd controleert het op de spelfout en grammatica. Dat is een subproces. Deze subprocessen worden threads genoemd. Multithreading is het proces waarbij meerdere threads tegelijkertijd worden uitgevoerd. Toepassingen met schroefdraad 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 door de Thread-klasse uit te breiden. Bij het implementeren van Runnable kunnen veel threads hetzelfde thread-object delen, terwijl in de Extending Thread-klasse aan elke thread een uniek object is gekoppeld. Dat is het belangrijkste 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 versus Thread in tabelvorm
6. Samenvatting
Wat is Runnable?
Een thread doorloopt een aantal staten. Het "nieuwe" is het begin van de levenscyclus van de draad. Nadat de methode start () een nieuwe thread aanroept, wordt deze uitvoerbaar. Als de draadplanner de draad selecteert, gaat deze over 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 deze naar de beëindigingsstatus.
Een thread kan worden geïmplementeerd met behulp van de Runnable-interface. Raadpleeg het onderstaande programma.
Figuur 01: Java-programma om een thread te maken met behulp van de Runnable-interface
Volgens het bovenstaande programma implementeert de klasse Runnable Demo de Runnable-interface. De methode run () bevindt zich in de klasse die de Runnable-interface implementeert. Het is het startpunt voor de thread. De logica zit in de run () methode. In het hoofdprogramma wordt een thread gemaakt door een object te definiëren dat is geïnstantieerd vanuit de klasse Runnable Demo. Het is t1. De start () methode 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 de Runnable-interface. De logica die moet worden uitgevoerd 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ïnstantieerd 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 klasse Thread uit te breiden. Het bestaat uit drie stappen. De eerste is om de klasse te verklaren als uitbreiding van de Thread-klasse. Daarna moet de methode run () worden geschreven. Het bevat 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 run () methode bevat de logica die door de thread moet worden uitgevoerd. Het is het toegangspunt tot de thread. Vervolgens wordt het thread-object gemaakt. Het is thread1. De thread wordt gestart met de methode start (). Het zal een aanroep uitvoeren naar de methode run ().
Een voorbeeldprogramma van twee klassen die de Thread-klasse uitbreiden, is als volgt.
Figuur 04: Java-programma met twee klassen die de Thread-klasse uitbreiden
Volgens het bovenstaande programma breiden zowel klasse A als klasse B de Thread-klasse uit. Beide klassen hebben hun implementatie van de run () - methode. De belangrijkste thread is die de methode main () uitvoert. Voordat de hoofddraad sterft, wordt thread1 en thread2 gemaakt en gestart. Tegen de tijd dat de hoofddraad het einde van de hoofdmethode heeft bereikt, lopen er drie draden 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 lopen zelfstandig.
Wat zijn de overeenkomsten tussen Runnable en Thread?
Beiden gebruiken om een thread in Java te maken
Wat is het verschil tussen Runnable en Thread?
Diff Artikel Midden voor Tafel
Runnable versus 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, waardoor er minder geheugen nodig is. | In de Thread-klasse maakt elke thread een uniek object en vereist daarom meer geheugen. |
Capaciteit uitbreiden | |
Na het implementeren van de Runnable-interface, kan het een klasse uitbreiden. | Meerdere overervingen worden niet ondersteund in Java. Nadat de Thread-klasse is uitgebreid, kan geen andere klasse worden uitgebreid. |
Onderhoudscode | |
Uitvoerbare interface maakt code beter onderhoudbaar. | In de Thread-les is het onderhoud tijdrovend. |
Samenvatting - Runnable versus Thread
Een proces is opgedeeld in meerdere subprocessen om meerdere taken tegelijkertijd uit te voeren. Deze subprocessen worden threads genoemd. 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 gemakkelijk om de Thread-klasse uit te breiden, maar het is geen betere praktijk voor Object-Oriented Programming. Bij het implementeren van Runnable kunnen veel threads hetzelfde thread-object delen, terwijl in de uitgebreide Thread-klasse aan elke thread een uniek object is gekoppeld. 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 voor offline doeleinden gebruiken volgens de citatienota. Download hier de pdf-versie Difference Between Runnable and Thread