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.
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
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.
Ď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.
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á. |
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.
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
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