Nøkkelforskjell – kjørbar vs tråd
Et program som kjøres er kjent som en prosess. Prosessen kan deles inn i flere delprosesser. For eksempel er Microsoft Word en prosess. Samtidig sjekker den for stavefeil og grammatikk. Det er en delprosess. Disse delprosessene er kjent som tråder. Multithreading er prosessen med å kjøre flere tråder samtidig. Trådede applikasjoner kan bygges ved hjelp av forskjellige programmeringsspråk. Runnable og Thread er assosiert med Java-programmering. Det er to metoder i Java for å lage en tråd ved å implementere et Runnable-grensesnitt eller utvide Thread-klassen. Når du implementerer Runnable, kan mange tråder dele det samme trådobjektet mens i Extending Thread-klassen har hver tråd et unikt objekt knyttet til seg. Det er hovedforskjellen mellom Runnable og Thread.
Hva er kjørbart?
En tråd går gjennom noen stater. Det "nye" er begynnelsen på trådens livssyklus. Etter at start()-metoden kaller på en ny tråd, blir den kjørbar. Hvis trådplanleggeren velger tråden, går den over til kjøretilstand. Tråden venter på tilstanden hvis tråden venter på at en annen tråd skal utføre en oppgave. Etter at tråden har fullført arbeidet, går den til avslutningstilstand.
En tråd kan implementeres ved hjelp av Runnable-grensesnittet. Se programmet nedenfor.
Figur 01: Java-program for å lage en tråd ved hjelp av Runnable-grensesnitt
I henhold til programmet ovenfor implementerer klassen Runnable Demo det Runnable-grensesnittet. Run()-metoden er inne i klassen som implementerer Runnable-grensesnitt. Det er inngangspunktet for tråden. Logikken er i run()-metoden. I hovedprogrammet lages en tråd ved å definere et objekt som instansieres fra Runnable Demo-klassen. Det er t1. Start()-metoden kalles ved å bruke t1.
Se programmet nedenfor.
Figur 02: Java-program for å lage en tråd for å kjøre en sløyfe, ved å implementere Runnable-grensesnittet
I følge eksemplet ovenfor implementerer klassen Runnable Demo Runnable-grensesnitt. Logikken som skal utføres med tråden er skrevet i run()-metoden. I hovedprogrammet lages en tråd ved å definere et objekt som instansieres fra Runnable Demo-klassen. Det er t1. Deretter kalles start()-metoden ved å bruke t1.
Hva er tråd?
Den andre metoden for å lage en tråd er å utvide Thread-klassen. Den består av tre trinn. Først er å erklære klassen som en utvidelse av trådklassen. Etterpå skal run()-metoden skrives. Den har sekvensen av trinnene tråden skal utføre. Til slutt opprettes trådobjektet, og start()-metoden kalles for å starte utføringen av tråden. Se programmet nedenfor.
Figur 03: Java-program som utvider trådklassen
I henhold til programmet ovenfor, utvider MyThread-klassen tråd-klassen. Den overstyrer kjøremetoden. Run()-metoden inneholder logikken som skal utføres av tråden. Det er inngangspunktet til tråden. Deretter opprettes trådobjektet. Det er tråd 1. Tråden startes med start()-metoden. Den vil utføre en call to run()-metode.
Et eksempelprogram med to klasser som utvider Thread-klassen er som følger.
Figur 04: Java-program med to klasser som utvider trådklassen
I følge programmet ovenfor, utvider både klasse A og B Trådklassen. Begge klassene har sin implementering av run()-metoden. Hovedtråden er som kjører main()-metoden. Før hovedtråden dør, oppretter og starter den tråd1 og tråd2. Innen hovedtråden nådde slutten av hovedmetoden, kjører tre tråder parallelt. Det er ingen spesifikk rekkefølge som trådene gir utdata. Når tråden først er startet er det vanskelig å bestemme rekkefølgen de skal utføre. De kjører uavhengig.
Hva er likhetene mellom kjørbar og tråd?
Begge bruker for å lage en tråd i Java
Hva er forskjellen mellom kjørbar og tråd?
Runnable vs Thread |
|
Runnable er et grensesnitt i Java for å lage en tråd som lar mange tråder dele det samme trådobjektet. | Tråden er en klasse i Java for å lage en tråd der hver tråd har et unikt objekt knyttet til seg. |
Minne | |
I Runnable deler flere tråder det samme objektet, så krever mindre minne. | I Thread-klassen lager hver tråd et unikt objekt, og krever derfor mer minne. |
Extending Ability | |
Etter å ha implementert Runnable-grensesnitt, kan det utvide en klasse. | Flere arv støttes ikke i Java. Etter å ha utvidet trådklassen, kan den ikke utvide noen annen klasse. |
Kodevedlikehold | |
Kjørbart grensesnitt gjør koden mer vedlikeholdbar. | I tråd-klassen er vedlikehold tidkrevende. |
Summary – Runnable vs Thread
En prosess er delt inn i flere delprosesser for å utføre flere oppgaver samtidig. Disse delprosessene er kjent som tråder. Instantiering av en tråd kan gjøres ved å implementere Runnable-grensesnittet eller ved å utvide trådklassen. Det er enkelt å utvide trådklassen, men det er ikke en bedre objektorientert programmeringspraksis. Når du implementerer Runnable, kan mange tråder dele det samme trådobjektet, mens i utvidende trådklasse har hver tråd et unikt objekt knyttet til seg. Det er forskjellen mellom Runnable og Thread. I Thread-klassen kan oppretting av flere objekter forbruke mer minne.
Last ned PDF-en av Runnable vs Thread
Du kan laste ned PDF-versjonen av denne artikkelen og bruke den til offline-formål i henhold til sitat. Last ned PDF-versjonen her Forskjellen mellom kjørbar og tråd