Skillnad mellan Runnable och Thread

Huvudskillnad - Runnable vs tråd
 

Ett program i körning är känt som en process. Processen kan delas upp i flera delprocesser. Microsoft Word är till exempel en process. Samtidigt kontrollerar den för stavfel och grammatik. Det är en delprocess. Dessa delprocesser är kända som trådar. Multithreading är processen att utföra flera trådar samtidigt. Trådade applikationer kan byggas med olika programmeringsspråk. Runnable och Thread är associerade med Java-programmering. Det finns två metoder i Java för att skapa en tråd genom att implementera ett Runnable-gränssnitt eller förlänga trådklassen. När du implementerar Runnable kan många trådar dela samma trådobjekt medan i Extending Thread-klassen, varje tråd har ett unikt objekt som är associerat med det. Det är nyckelskillnad mellan Runnable och Thread.

INNEHÅLL

1. Översikt och nyckelskillnad
2. Vad är Runnable
3. Vad är tråd
4. Likheter mellan Runnable och Thread
5. Jämförelse vid sida vid sida - Runnable vs thread i tabellform
6. Sammanfattning

Vad är Runnable?

En tråd går igenom vissa stater. Den "nya" är början på trådens livscykel. Efter att startmetoden kallat på en ny tråd blir den löpbar. Om trådschemaläggaren väljer tråden, övergår den till driftläget. Gänget väntar på staten om den tråden väntar på en annan tråd för att utföra en uppgift. När tråden har slutfört arbetet går det till uppsägningstillståndet.

En tråd kan implementeras med Runnable-gränssnittet. Se nedan programmet.

Figur 01: Java-program för att skapa en tråd med Runnable-gränssnittet

Enligt ovanstående program implementerar klassen Runnable Demo Runnable-gränssnittet. Metoden run () ligger i klassen som implementerar Runnable-gränssnittet. Det är ingången för tråden. Logiken finns i run () -metoden. I huvudprogrammet skapas en tråd genom att definiera ett objekt som instanserats från Runnable Demo-klassen. Det är t1. Metoden start () kallas med t1.

Se nedan programmet.

Figur 02: Java-program för att skapa en tråd för att utföra en loop genom att implementera Runnable-gränssnittet

Enligt ovanstående exempel implementerar klassen Runnable Demo Runnable-gränssnittet. Logiken som ska utföras med tråden skrivs i run () -metoden. I huvudprogrammet skapas en tråd genom att definiera ett objekt som instanserats från Runnable Demo-klassen. Det är t1. Då heter startmetoden () metoden t1.

Vad är tråd?

Den andra metoden att skapa en tråd är genom att förlänga Thread-klassen. Den består av tre steg. Först är att förklara klassen som att utöka ämnesgruppen. Därefter ska run () -metoden skrivas. Den har sekvensen av steg som tråden ska utföra. Slutligen skapas trådobjektet, och metoden start () kallas för att initiera tråden. Se nedan programmet.

Figur 03: Java-program som utökar trådklassen

Enligt ovanstående program utökar MyThread-klassen Thread-klassen. Det strider mot körmetoden. Metoden run () innehåller logiken som ska utföras av tråden. Det är ingången till tråden. Då skapas trådobjektet. Det är tråd1. Gängan startas med startmetoden (). Det kommer att utföra ett samtal till run () -metoden.

Ett exempelprogram av två klasser som utökar trådklassen är som följer.

Figur 04: Java-program med två klasser som utökar trådklassen

Enligt ovanstående program utökar både klass A och B trådgruppen. Båda klasserna har sin implementering av run () -metoden. Huvudtråden är vilken som utför huvudmetoden (). Innan huvudgänget dör, skapar och startar tråd 1 och tråd2. När huvudgängan nått slutet av huvudmetoden körs tre trådar parallellt. Det finns ingen specifik ordning där trådarna ger resultat. När tråden är igång är det svårt att bestämma vilken ordning de ska genomföra. De kör självständigt.

Vad är likheterna mellan Runnable och Thread?

  • Båda använder för att skapa en tråd i Java.

Vad är skillnaden mellan Runnable och Thread?

Runnable vs Thread

Runnable är ett gränssnitt i Java för att skapa en tråd som tillåter många trådar att dela samma trådobjekt. Gängan är en klass i Java för att skapa en tråd där varje tråd har ett unikt objekt associerat med det.
 Minne
I Runnable delar flera trådar samma objekt, så kräver mindre minne. I trådklassen skapar varje tråd ett unikt objekt, vilket kräver mer minne.
Utökad förmåga
Efter att ha implementerat Runnable-gränssnittet kan det förlänga en klass. Flera arv stöds inte i Java. Efter förlängning av Thread-klassen kan den inte förlänga någon annan klass.
 Kod Underhållbarhet
Runnable gränssnitt gör koden mer underhållbar. I Thread-klassen är underhållet tidskrävande.

Sammanfattning - Runnable vs tråd 

En process är indelad i flera delprocesser för att utföra flera uppgifter samtidigt. Dessa delprocesser är kända som trådar. Instantiering av en tråd kan utföras genom att implementera Runnable-gränssnittet eller genom att förlänga trådklassen. Det är lätt att förlänga Thread-klassen, men det är inte en bättre objektorienterad programmeringspraxis. Vid implementering av Runnable kan många trådar dela samma trådobjekt medan de sträcker sig i Thread-klassen varje tråd har ett unikt objekt associerat med det. Det är skillnaden mellan Runnable och Thread. I trådklassen kan flera objekt skapas mer minne.

Ladda ner PDF av Runnable vs Thread

Du kan hämta PDF-versionen av den här artikeln och använda den för offlineändamål enligt citationsnotat. Vänligen ladda ner PDF-versionen här Skillnaden mellan Runnable och Thread

Referens:

1.tutorialspoint.com. "Java Multithreading." Punkten, Tillgänglig här 
2.Pramodbablad. "Utökar tråd Vs-implementeringar som kan köras i Java." Java-konceptet för dagen, 11 november 2016. Tillgänglig här
3.Ways för att skapa en tråd i Java Multithreading | Core Java Tutorial | Studytonight. Tillgänglig här