Rozdíl mezi spustitelným a vláknem

Klíčový rozdíl - spustitelný vs vlákno
 

Prováděný program je znám jako proces. Proces lze rozdělit do několika dílčích procesů. Například Microsoft Word je proces. Současně kontroluje pravopisnou chybu a gramatiku. To je dílčí proces. Tyto podprocesy jsou známé jako vlákna. Vícevláknové zpracování je proces provádění více vláken současně. Vláknové aplikace lze vytvářet pomocí různých programovacích jazyků. Runnable a Thread jsou spojeny s programováním Java. V Javě existují dvě metody, jak vytvořit vlákno implementací rozhraní Runnable nebo rozšířením třídy vlákna. Při implementaci Runnable může mnoho podprocesů sdílet stejný objekt podprocesu, zatímco ve třídě rozšíření podprocesu má každý podproces jedinečný objekt. Toto je klíčový rozdíl mezi Runnable a Thread.

OBSAH

1. Přehled a klíčový rozdíl
2. Co je Runnable
3. Co je vlákno
4. Podobnosti mezi runnable a Thread
5. Porovnání bok po boku - Runnable vs Thread ve formě tabulky
6. Shrnutí

Co je Runnable?

Vlákno prochází některými stavy. „Nový“ je začátek životního cyklu vlákna. Jakmile metoda start () volá na nové vlákno, stane se spustitelnou. Pokud plánovač vlákna vybere vlákno, přejde do běžícího stavu. Vlákno čeká na stav, pokud toto vlákno čeká na další vlákno k provedení úlohy. Jakmile vlákno dokončí práci, přejde do stavu ukončení.

Vlákno lze implementovat pomocí rozhraní Runnable. Viz níže uvedený program.

Obrázek 01: Program Java pro vytvoření vlákna pomocí rozhraní Runnable

Podle výše uvedeného programu implementuje třída Runnable Demo rozhraní Runnable. Metoda run () je uvnitř třídy implementující rozhraní Runnable. Je to vstupní bod pro vlákno. Logika je v metodě run (). V hlavním programu je vlákno vytvořeno definováním objektu, který vytvořil instanci ze třídy Runnable Demo. Je to t1. Metoda start () se nazývá pomocí t1.

Viz níže uvedený program.

Obrázek 02: Program Java pro vytvoření vlákna k provedení smyčky implementací rozhraní Runnable

Podle výše uvedeného příkladu implementuje třída Runnable Demo rozhraní Runnable. Logika, která se má provést pomocí vlákna, je zapsána v metodě run (). V hlavním programu je vlákno vytvořeno definováním objektu, který vytvořil instanci ze třídy Runnable Demo. Je to t1. Poté je metoda start () volána pomocí t1.

Co je vlákno?

Dalším způsobem vytvoření vlákna je rozšíření třídy vlákno. Skládá se ze tří kroků. Prvním je deklarace třídy jako rozšíření třídy vlákna. Poté by měla být zapsána metoda run (). Má sled kroků, které by vlákno mělo provést. Nakonec je vytvořen objekt podprocesu a je vyvolána metoda start () pro zahájení provádění podprocesu. Viz níže uvedený program.

Obrázek 03: Program Java, který rozšiřuje třídu vláken

Podle výše uvedeného programu třída MyThread rozšiřuje třídu Thread. Přepíše metodu run. Metoda run () obsahuje logiku, kterou má vlákno provést. Je to vstupní bod pro vlákno. Poté je vytvořen objekt podprocesu. Je to vlákno1. Vlákno je spuštěno pomocí metody start (). Provede metodu call to run ().

Příklad programu dvou tříd rozšiřujících třídu vlákna je následující.

Obrázek 04: Program Java se dvěma třídami, které rozšiřují třídu vláken

Podle výše uvedeného programu rozšiřují třída A i B třídu vlákna. Obě třídy mají implementaci metody run (). Hlavní vlákno je metoda, která provádí metodu main (). Než hlavní vlákno zemře, vytvoří a spustí vlákno1 a vlákno2. Než hlavní vlákno dosáhne konce hlavní metody, běží tři vlákna paralelně. Neexistuje žádné konkrétní pořadí, ve kterém vlákna dávají výstup. Jakmile je vlákno spuštěno, je těžké rozhodnout o pořadí, v jakém budou provedeny. Běží nezávisle.

Jaké jsou podobnosti mezi Runnable a Thread?

  • Oba používají k vytvoření vlákna v Javě.

Jaký je rozdíl mezi Runnable a Thread?

Runnable vs Thread

Runnable je rozhraní v Javě k vytvoření vlákna, které umožňuje mnoha vláknům sdílet stejný objekt vlákna. Vlákno je třída v Javě, která má vytvořit vlákno, kde každé vlákno má k němu přiřazený jedinečný objekt.
 Paměť
V Runnable sdílí více vláken stejný objekt, takže vyžadují méně paměti. Ve třídě vlákno vytváří každé vlákno jedinečný objekt, a proto vyžaduje více paměti.
Rozšiřování schopností
Po implementaci Runnable rozhraní, to může rozšířit třídu. V Javě není podporováno více dědictví. Po rozšíření třídy Thread nemůže rozšířit žádnou jinou třídu.
 Udržovatelnost kódu
Spouštěcí rozhraní umožňuje lepší údržbu kódu. Ve třídě Thread je údržba časově náročná.

Shrnutí - spustitelné vs vlákno 

Proces je rozdělen do několika dílčích procesů, aby bylo možné provádět více úkolů současně. Tyto podprocesy jsou známé jako vlákna. Okamžitou instalaci vlákna lze provést implementací rozhraní Runnable nebo rozšířením třídy vlákna. Je snadné rozšířit třídu vlákna, ale není to lepší praxe objektově orientovaného programování. Při implementaci Runnable může mnoho podprocesů sdílet stejný objekt podprocesu, zatímco při rozšiřování třídy podprocesu má každý podproces jedinečný objekt. To je rozdíl mezi Runnable a Thread. Ve třídě vlákno vytváření více objektů může spotřebovat více paměti.

Stáhněte si PDF Runnable vs Thread

Můžete si stáhnout PDF verzi tohoto článku a použít ji pro účely offline podle citace. Stáhněte si prosím verzi PDF zde Rozdíl mezi spustitelnými a vlákny

Odkaz:

1.tutorialspoint.com. "Java multithreading." The Point, k dispozici zde 
2.Pramodbablad. "Rozšiřuje Ths Vs implementuje spustitelné v Javě." Koncept Java dne, 11. listopadu 2016. K dispozici zde
3. Způsoby, jak vytvořit vlákno v Java Multithreading | Základní Java výukový program Studytonight. K dispozici zde