Kľúčový rozdiel - spustiteľný vs vlákno
Program, ktorý sa vykonáva, je známy ako proces. Proces možno rozdeliť do niekoľkých podprocesov. Napríklad Microsoft Word je proces. Zároveň kontroluje pravopisnú chybu a gramatiku. To je podproces. Tieto podprocesy sú známe ako vlákna. Multithreading je proces vykonávania viacerých vlákien súčasne. Aplikácie so závitom je možné vytvárať pomocou rôznych programovacích jazykov. Runnable a Thread sú spojené s programovaním v jazyku Java. V Jave existujú dve metódy na vytvorenie vlákna implementáciou rozhrania Runnable alebo rozšírením triedy Thread. Pri implementácii programu Runnable môže veľa vlákien zdieľať rovnaký objekt vlákna, zatiaľ čo v triede Extending Thread má každé vlákno priradený jedinečný objekt. To je kľúčový rozdiel medzi Runnable a Thread.
OBSAH
1. Prehľad a hlavný rozdiel
2. Čo je spustiteľné
3. Čo je vlákno
4. Podobnosti medzi spustiteľným a vláknom
5. Porovnanie vedľa seba - spustiteľné vs vlákno v tabuľkovej podobe
6. Zhrnutie
Čo je Runnable?
Vlákno prechádza niektorými stavmi. „Nový“je začiatok životného cyklu vlákna. Keď metóda start () zavolá nové vlákno, stane sa spustiteľným. Ak plánovač vlákien vlákno vyberie, prepne sa do spusteného stavu. Vlákno čaká na stav, ak toto vlákno čaká na vykonanie úlohy iným vláknom. Keď vlákno dokončí prácu, prejde do stavu ukončenia.
Vlákno je možné implementovať pomocou rozhrania Runnable. Pozrite si nižšie uvedený 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ý sa vytvoril z triedy Runnable Demo. Je to t1. Metóda start () sa volá pomocou t1.
Pozrite si nižšie uvedený 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 trieda Runnable Demo implementuje rozhranie Runnable. Logika, ktorá sa má vykonať pomocou vlákna, je napísaná metódou run (). V hlavnom programe sa vlákno vytvorí definovaním objektu, ktorý sa vytvoril z triedy Runnable Demo. Je to t1. Potom sa metóda start () volá pomocou t1.
Čo je vlákno?
Ďalším spôsobom vytvárania vlákna je rozšírenie triedy Thread. Skladá sa z troch krokov. Prvým je deklarovať triedu ako rozširujúcu triedu vlákien. Potom by mala byť napísaná metóda run (). Má postupnosť krokov, ktoré by vlákno malo vykonať. Nakoniec sa vytvorí objekt vlákna a zavolá sa metóda start () na zahájenie vykonania vlákna. Pozrite si nižšie uvedený program.
Obrázok 03: Program Java, ktorý rozširuje triedu vlákien
Podľa vyššie uvedeného programu trieda MyThread rozširuje triedu Thread. Prepíše metódu spustenia. Metóda run () obsahuje logiku, ktorú má vlákno vykonať. Je to vstupný bod do vlákna. Potom sa vytvorí objekt vlákna. Je to thread1. Vlákno sa spúšťa metódou start (). Vykoná metódu call to run ().
Príklad programu dvoch tried rozširujúcich triedu Thread je nasledovný.
Obrázok 04: Program Java s dvoma triedami, ktoré rozširujú triedu Thread
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 to, ktoré vykonáva metódu main (). Predtým, ako hlavné vlákno zomrie, vytvorí a spustí vlákno1 a vlákno2. V čase, keď hlavné vlákno dosiahlo koniec hlavnej metódy, prebiehajú tri vlákna paralelne. Neexistuje žiadne konkrétne poradie, v ktorom vlákna poskytnú výstup. Po spustení vlákna je ťažké rozhodnúť o poradí, ktoré vykoná. Behajú samostatne.
Aké sú podobnosti medzi spustiteľnými a vláknami?
Oba používajú na vytvorenie vlákna v Jave
Aký je rozdiel medzi spustiteľným a vláknom?
Rozdielny článok v strede pred tabuľkou
Spustiteľné vs vlákno |
|
Runnable je rozhranie v Jave na vytvorenie vlákna, ktoré umožňuje mnohým vláknam zdieľať rovnaký objekt vlákna. | Vlákno je trieda v Jave, ktorá vytvára vlákno, kde každé vlákno má priradený jedinečný objekt. |
Pamäť | |
V položke Spustiteľné zdieľajú viaceré vlákna rovnaký objekt, takže vyžadujú menej pamäte. | V triede vlákien každé vlákno vytvára jedinečný objekt, preto vyžaduje viac pamäte. |
Rozširovanie schopností | |
Po implementácii rozhrania Runnable môže rozšíriť triedu. | Viaceré dedičstvá nie sú v Jave podporované. Po rozšírení triedy Thread nemôže rozšíriť inú triedu. |
Udržateľnosť kódu | |
Spustiteľné rozhranie umožňuje udržanie kódu. | V triede vlákien je údržba časovo náročná. |
Zhrnutie - Runnable vs Thread
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. Vytvorenie inštancie vlákna je možné vykonať implementáciou rozhrania Runnable alebo rozšírením triedy vlákna. Je ľahké rozšíriť triedu vlákien, ale nejde o lepšiu praktiku objektovo orientovaného programovania. Pri implementácii Runnable môže veľa vlákien zdieľať rovnaký objekt vlákna, zatiaľ čo pri rozširovaní triedy vlákien má každé vlákno k nemu priradený jedinečný objekt. To je rozdiel medzi Runnable a Thread. V triede vlákien môže vytváranie viacerých objektov spotrebovať viac pamäte.
Stiahnite si PDF súboru Runnable vs Thread
Môžete si stiahnuť verziu tohto článku vo formáte PDF a použiť ho na offline účely podľa citačnej poznámky. Tu si stiahnite verziu PDF. Rozdiel medzi spustiteľnosťou a vláknom