Forskellen mellem løbbar og tråd

Indholdsfortegnelse:

Forskellen mellem løbbar og tråd
Forskellen mellem løbbar og tråd

Video: Forskellen mellem løbbar og tråd

Video: Forskellen mellem løbbar og tråd
Video: What is the difference between Runnable and Thread? - Cracking the Java Coding Interview 2024, Juli
Anonim

Nøgleforskel – Rundable vs Thread

Et program i udførelse er kendt som en proces. Processen kan opdeles i flere delprocesser. For eksempel er Microsoft Word en proces. Samtidig tjekker den for stavefejl og grammatik. Det er en delproces. Disse underprocesser er kendt som tråde. Multithreading er processen med at udføre flere tråde samtidigt. Trådede applikationer kan bygges ved hjælp af forskellige programmeringssprog. Runnable og Thread er forbundet med Java-programmering. Der er to metoder i Java til at oprette en tråd ved at implementere en Runnable-grænseflade eller udvide Thread-klassen. Når du implementerer Runnable, kan mange tråde dele det samme trådobjekt, mens i Extending Thread-klassen har hver tråd et unikt objekt tilknyttet. Det er den vigtigste forskel mellem Runnable og Thread.

Hvad kan køres?

En tråd går gennem nogle stater. Det "nye" er begyndelsen på trådens livscyklus. Efter start()-metoden kalder på en ny tråd, bliver den kørebar. Hvis trådplanlæggeren vælger tråden, skifter den til køretilstand. Tråden venter på tilstanden, hvis den tråd venter på, at en anden tråd udfører en opgave. Når tråden har fuldført arbejdet, går den til afslutningstilstand.

En tråd kan implementeres ved hjælp af Runnable-grænsefladen. Se nedenstående program.

Forskellen mellem løbbar og tråd
Forskellen mellem løbbar og tråd

Figur 01: Java-program til at oprette en tråd ved hjælp af Runnable-grænseflade

I henhold til ovenstående program implementerer klassen Runnable Demo den Runnable-grænseflade. Run()-metoden er inde i klassen, der implementerer Runnable-grænsefladen. Det er indgangspunktet for tråden. Logikken er i run()-metoden. I hovedprogrammet oprettes en tråd ved at definere et objekt, der instantieres fra Runnable Demo-klassen. Det er t1. Start()-metoden kaldes ved hjælp af t1.

Se nedenstående program.

Forskellen mellem Runnable og Thread_Figure 02
Forskellen mellem Runnable og Thread_Figure 02

Figur 02: Java-program til at oprette en tråd til at udføre en loop ved at implementere den Runnable-grænseflade

I henhold til ovenstående eksempel implementerer klassen Runnable Demo Runnable-grænsefladen. Logikken til at udføre ved hjælp af tråden er skrevet i run()-metoden. I hovedprogrammet oprettes en tråd ved at definere et objekt, der instantieres fra Runnable Demo-klassen. Det er t1. Derefter kaldes start()-metoden ved hjælp af t1.

Hvad er tråd?

Den anden metode til at oprette en tråd er ved at udvide Thread-klassen. Den består af tre trin. Først er at erklære klassen som en forlængelse af trådklassen. Bagefter skal run()-metoden skrives. Den har den rækkefølge af trin, tråden skal udføre. Til sidst oprettes trådobjektet, og start()-metoden kaldes for at starte udførelsen af tråden. Se nedenstående program.

Forskellen mellem Runnable og Thread_Figure 03
Forskellen mellem Runnable og Thread_Figure 03

Figur 03: Java-program, der udvider trådklassen

I henhold til ovenstående program udvider MyThread-klassen Thread-klassen. Det tilsidesætter kørselsmetoden. Metoden run() indeholder den logik, der skal udføres af tråden. Det er indgangspunktet til tråden. Derefter oprettes trådobjektet. Det er tråd 1. Tråden startes ved hjælp af start() metoden. Det vil udføre et kald til run()-metoden.

Et eksempel på to klasser, der udvider trådklassen, er som følger.

Nøgleforskel mellem kørebar og tråd
Nøgleforskel mellem kørebar og tråd

Figur 04: Java-program med to klasser, der udvider trådklassen

I henhold til ovenstående program udvider både klasse A og B trådklassen. Begge klasser har deres implementering af run()-metoden. Hovedtråden er, som udfører main()-metoden. Før hovedtråd dør, skaber og starter tråd1 og tråd2. På det tidspunkt, hvor hovedtråden nåede slutningen af hovedmetoden, kører tre tråde parallelt. Der er ingen bestemt rækkefølge, hvori trådene giver output. Når først tråden er startet, er det svært at beslutte, hvilken rækkefølge de vil udføre. De kører uafhængigt.

Hvad er lighederne mellem Runnable og Thread?

Begge bruger til at oprette en tråd i Java

Hvad er forskellen mellem Runnable og Thread?

Runnable vs Thread

Runnable er en grænseflade i Java til at skabe en tråd, der tillader mange tråde at dele det samme trådobjekt. Tråden er en klasse i Java for at skabe en tråd, hvor hver tråd har et unikt objekt tilknyttet.
Hukommelse
I Runnable deler flere tråde det samme objekt, så kræver mindre hukommelse. I Thread-klassen skaber hver tråd et unikt objekt, og kræver derfor mere hukommelse.
Extending Ability
Efter implementering af Runnable-grænseflade, kan den udvide en klasse. Flere arv understøttes ikke i Java. Efter at have udvidet trådklassen, kan den ikke forlænge nogen anden klasse.
Kodevedligeholdelse
Kørbar grænseflade gør koden mere vedligeholdelsesfri. I Thread-klassen er vedligeholdelse tidskrævende.

Opsummering – Rundable vs Thread

En proces er opdelt i flere underprocesser for at udføre flere opgaver på samme tid. Disse underprocesser er kendt som tråde. Instantiering af en tråd kan gøres ved at implementere den Runnable-grænseflade eller ved at udvide trådklassen. Det er nemt at udvide trådklassen, men det er ikke en bedre objektorienteret programmeringspraksis. Når du implementerer Runnable, kan mange tråde dele det samme trådobjekt, mens hver tråd i den udvidede trådklasse har et unikt objekt tilknyttet. Det er forskellen mellem Runnable og Thread. I Thread-klassen kan oprettelse af flere objekter forbruge mere hukommelse.

Download PDF'en af Runnable vs Thread

Du kan downloade PDF-versionen af denne artikel og bruge den til offline-formål i henhold til citatnotat. Download venligst PDF-versionen her Forskel mellem Runnable og Thread

Anbefalede: