Rozdiel medzi spustiteľným a vláknom

Kľúčový rozdiel - spustiteľný vs vlákno
 

Vykonaný program je známy ako proces. Tento proces možno rozdeliť do viacerých podprocesov. Napríklad program Microsoft Word je proces. Zároveň kontroluje pravopisnú chybu a gramatiku. To je čiastkový proces. Tieto podprocesy sú známe ako vlákna. Viacvláknové spracovanie je proces vykonávania viacerých vlákien súčasne. Vláknové aplikácie môžu byť vytvorené pomocou rôznych programovacích jazykov. Runnable a Thread sú spojené s programovaním Java. V Java existujú dve metódy na vytvorenie vlákna implementáciou rozhrania Runnable alebo rozšírením triedy vlákna. Pri implementácii Runnable môže veľa vlákien zdieľať ten istý objekt vlákna, zatiaľ čo v triede Rozšírenie vlákna je každé vlákno spojené s jedinečným objektom.. To je kľúčový rozdiel medzi spustiteľným a vláknom.

OBSAH

1. Prehľad a kľúčový rozdiel
2. Čo je spustiteľné
3. Čo je vlákno
4. Podobnosti medzi jazditeľnými a vláknami
5. Porovnanie vedľa seba - spustiteľné verzus vlákno v tabuľkovej forme
6. Zhrnutie

Čo je spustiteľné?

Niť prechádza cez niektoré stavy. „Nový“ je začiatok životného cyklu vlákna. Keď metóda start () volá nové vlákno, stane sa spustiteľnou. Ak plánovač vlákna vyberie vlákno, prejde do bežiaceho stavu. Vlákno čaká na stav, ak toto vlákno čaká na ďalšie vlákno na vykonanie úlohy. Keď vlákno dokončí prácu, prejde do stavu ukončenia.

Vlákno môže byť implementované pomocou rozhrania Runnable. Pozrite si nasledujúci program.

Obrázok 01: Program Java na vytvorenie vlákna pomocou rozhrania Runnable

Podľa vyššie uvedeného programu trieda Runnable Demo implementuje rozhranie Runnable. Metóda run () je vo vnútri triedy, ktorá implementuje rozhranie Runnable. Je to vstupný bod pre vlákno. Logika je v metóde run (). V hlavnom programe sa vlákno vytvorí definovaním objektu, ktorý vytvoril inštanciu z triedy Runnable Demo. Je to t1. Metóda start () sa volá pomocou t1.

Pozrite si nasledujúci program.

Obrázok 02: Program Java na vytvorenie vlákna na vykonanie slučky implementáciou rozhrania Runnable

Podľa vyššie uvedeného príkladu implementuje trieda Runnable Demo rozhranie Runnable. Logika, ktorá sa má vykonať pomocou vlákna, je napísaná v metóde run (). V hlavnom programe sa vlákno vytvorí definovaním objektu, ktorý vytvoril inštanciu z triedy Runnable Demo. Je to t1. Potom sa metóda start () volá pomocou t1.

Čo je vlákno?

Ďalším spôsobom vytvorenia vlákna je rozšírenie triedy vlákna. Pozostáva z troch krokov. Prvým je deklarovať triedu ako rozšírenie triedy vlákna. Potom by sa mala napísať metóda run (). Má postupnosť krokov, ktoré by malo vlákno vykonať. Nakoniec sa vytvorí objekt vlákna a zavolá sa metóda start () na začatie vykonávania vlákna. Pozrite si nasledujúci program.

Obrázok 03: Program Java, ktorý rozširuje triedu vlákien

Podľa vyššie uvedeného programu trieda MyThread rozširuje triedu vlákien. Prepíše metódu run. Metóda run () obsahuje logiku, ktorú má vykonať vlákno. Je to vstupný bod do vlákna. Potom sa vytvorí objekt vlákna. Je to vlákno1. Vlákno sa spustí pomocou metódy start (). Vykoná metódu call to run ().

Príklad programu dvoch tried rozširujúcich triedu vlákien je nasledujúci.

Obrázok 04: Program Java s dvoma triedami, ktoré rozširujú triedu vlákien

Podľa vyššie uvedeného programu trieda A aj B rozširujú triedu vlákien. Obe triedy majú implementovanú metódu run (). Hlavné vlákno je metóda, ktorá vykonáva metódu main (). Predtým, ako zomrie hlavné vlákno, vytvorí a spustí vlákno1 a vlákno2. V čase, keď hlavný závit dosiahol koniec hlavnej metódy, prebiehajú paralelne tri vlákna. Neexistuje žiadne konkrétne poradie, v ktorom vlákna poskytujú výstup. Akonáhle je vlákno spustené, je ťažké rozhodnúť sa o poradí, v akom sa majú vykonať. Beží nezávisle.

Aké sú podobnosti medzi spustiteľnými a vláknami?

  • Obaja používajú na vytvorenie vlákna v Jave.

Aký je rozdiel medzi spustiteľnými a vláknami?

Spustiteľné vs vlákno

Runnable je rozhranie v Jave na vytvorenie vlákna, ktoré umožňuje mnohým vláknam zdieľať ten istý objekt vlákna. Vlákno je trieda v Jave na vytvorenie vlákna, kde každé vlákno má k nemu priradený jedinečný objekt.
 Pamäť
V Runnable zdieľajú viaceré vlákna ten istý objekt, takže vyžadujú menej pamäte. V vlákne triedy každé vlákno vytvára jedinečný objekt, preto vyžaduje viac pamäte.
Rozšírenie schopnosti
Po implementácii spustiteľného rozhrania môže rozšíriť triedu. V Jave nie je podporovaných viac dedení. Po rozšírení triedy vlákna nemôže rozširovať inú triedu.
 Udržateľnosť kódu
Spustiteľné rozhranie robí kód udržiavateľnejším. V triede vlákien je údržba časovo náročná.

Zhrnutie - spustiteľné vs vlákno 

Proces je rozdelený do viacerých čiastkových procesov na vykonávanie viacerých úloh súčasne. Tieto podprocesy sú známe ako vlákna. Okamžité vlákno sa dá vykonať implementáciou rozhrania Runnable alebo rozšírením triedy vlákna. Je ľahké rozšíriť triedu vlákien, ale nie je to lepšia prax objektovo orientovaného programovania. Pri implementácii Runnable môže veľa vlákien zdieľať ten istý objekt vlákna, zatiaľ čo pri rozširovaní triedy vlákna má každé vlákno jedinečný objekt, ktorý je s ním spojený. To je rozdiel medzi spustiteľnými a vláknami. V triede vlákna môže vytvorenie viacerých objektov spotrebovať viac pamäte.

Stiahnite si PDF Runnable vs Thread

Môžete si stiahnuť verziu tohto článku vo formáte PDF a použiť ju na účely offline podľa citácie. Stiahnite si verziu PDF tu Rozdiel medzi spustiteľnými a vláknami

referencie:

1.tutorialspoint.com. „Multithreading Java“. The Point, k dispozícii tu 
2.Pramodbablad. „Rozširuje Thread Vs implementuje spustiteľné v Java.“ Koncept dňa Java, 11. november 2016. K dispozícii tu
3. Spôsoby, ako vytvoriť vlákno v Java multithreading | Výukový program pre jadro Java Studytonight. K dispozícii tu