Rozdíl Mezi Runnable A Thread

Obsah:

Rozdíl Mezi Runnable A Thread
Rozdíl Mezi Runnable A Thread

Video: Rozdíl Mezi Runnable A Thread

Video: Rozdíl Mezi Runnable A Thread
Video: Thread и Runnable. Java Professional. Урок 13 2024, Smět
Anonim

Klíčový rozdíl - Runnable vs Thread

Program v provedení je známý jako proces. Proces lze rozdělit do několika podprocesů. Například Microsoft Word je proces. Zároveň kontroluje pravopisnou chybu a gramatiku. To je podproces. Tyto podprocesy jsou známé jako vlákna. Vícevláknový proces 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 v Javě. V Javě existují dvě metody pro vytvoření vlákna implementací rozhraní Runnable nebo rozšířením třídy Thread. Při implementaci Runnable může mnoho vláken sdílet stejný objekt vlákna, zatímco ve třídě Extending Thread má každé vlákno přidružený jedinečný objekt. To je klíčový rozdíl mezi Runnable a Thread.

OBSAH

1. Přehled a hlavní rozdíl

2. Co je spustitelný

3. Co je podproces

4. Podobnosti mezi spustitelným a podprocesem

5. Porovnání vedle sebe - spustitelný vs vlákno 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. Poté, co metoda start () zavolá nové vlákno, stane se spustitelnou. Pokud plánovač vláken vybere vlákno, přejde do provozního stavu. Vlákno čeká na stav, pokud toto vlákno čeká na provedení jiného vlákna jiným vláknem. Poté, co vlákno dokončí práci, přejde do stavu ukončení.

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

Rozdíl mezi Runnable a Thread
Rozdíl mezi Runnable a Thread

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

Podle výše uvedeného programu třída Runnable Demo implementuje rozhraní Runnable. Metoda run () je uvnitř třídy, která implementuje 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ý byl vytvořen z třídy Runnable Demo. Je to t1. Metoda start () se volá pomocí t1.

Viz níže uvedený program.

Rozdíl mezi Runnable a Thread Figure 02
Rozdíl mezi Runnable a Thread Figure 02

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

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

Co je vlákno?

Druhou metodou vytvoření vlákna je rozšíření Thread třídy. Skládá se ze tří kroků. Nejprve je deklarovat třídu jako rozšiřující třídu Thread. Poté by měla být napsána metoda run (). Má posloupnost kroků, které by vlákno mělo provést. Nakonec je vytvořen objekt vlákna a je volána metoda start () k zahájení provádění vlákna. Viz níže uvedený program.

Rozdíl mezi Runnable a Thread Figure 03
Rozdíl mezi Runnable a Thread Figure 03

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

Podle výše uvedeného programu třída MyThread rozšiřuje třídu Thread. Přepíše metodu spuštění. Metoda run () obsahuje logiku, kterou má vlákno provést. Je to vstupní bod do vlákna. Poté je vytvořen objekt vlákna. Je to thread1. Vlákno se spouští metodou start (). Provede volání metody run ().

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

Klíčový rozdíl mezi Runnable a Thread
Klíčový rozdíl mezi Runnable a Thread

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

Podle výše uvedeného programu obě třídy A a B rozšiřují třídu Thread. Obě třídy mají implementaci metody run (). Hlavní vlákno je to, které provádí metodu main (). Než hlavní vlákno zemře, vytvoří a spustí podproces1 a podproces2. V době, kdy hlavní vlákno dosáhlo konce hlavní metody, běží tři vlákna paralelně. Neexistuje žádné konkrétní pořadí, ve kterém vlákna poskytují výstup. Jakmile je vlákno spuštěno, je těžké rozhodnout, jaké pořadí provedou. 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?

Rozdílný článek uprostřed před tabulkou

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á vytváří vlákno, kde každé vlákno má přidružený 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ě Thread každé vlákno vytváří jedinečný objekt, proto vyžaduje více paměti.
Rozšiřování schopností
Po implementaci Runnable rozhraní může rozšířit třídu. V Javě není podporováno více dědičností. Po rozšíření třídy Thread nemůže rozšířit žádnou jinou třídu.
Udržovatelnost kódu
Díky spustitelnému rozhraní je kód lépe udržovatelný. Ve třídě Thread je údržba časově náročná.

Shrnutí - Runnable vs Thread

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

Stáhněte si PDF Runnable vs Thread

Můžete si stáhnout verzi tohoto článku ve formátu PDF a použít jej pro offline účely podle citace. Stáhněte si zde PDF verzi. Rozdíl mezi Runnable a Thread

Doporučená: