Razlika između Runnable i Thread

Sadržaj:

Razlika između Runnable i Thread
Razlika između Runnable i Thread

Video: Razlika između Runnable i Thread

Video: Razlika između Runnable i Thread
Video: Absorption of water Imbibition, Diffusion and Osmosis- Plant Water Relation. 2024, Juli
Anonim

Ključna razlika – moguće pokrenuti u odnosu na nit

Program u izvršenju poznat je kao proces. Proces se može podijeliti na više podprocesa. Na primjer, Microsoft Word je proces. Istovremeno, provjerava pravopisnu grešku i gramatiku. To je podproces. Ovi podprocesi su poznati kao niti. Multithreading je proces izvršavanja više niti istovremeno. Threaded aplikacije se mogu izgraditi korištenjem različitih programskih jezika. Runnable i Thread su povezani sa Java programiranjem. U Javi postoje dvije metode za kreiranje niti implementacijom Runnable interfejsa ili proširenjem klase Thread. Kada se implementira Runnable, mnoge niti mogu dijeliti isti objekt niti dok u klasi Extending Thread svaka nit ima jedinstveni objekt povezan s njom. To je ključna razlika između Runnable-a i Thread-a.

Šta je moguće pokrenuti?

Nit prolazi kroz neka stanja. “Novo” je početak životnog ciklusa niti. Nakon što metoda start() pozove novu nit, ona postaje izvodljiva. Ako planer niti odabere nit, ona prelazi u stanje pokretanja. Nit čeka stanje ako ta nit čeka drugu nit da izvrši zadatak. Nakon što nit završi rad, ide u stanje završetka.

Tit se može implementirati koristeći Runnable interfejs. Pogledajte program ispod.

Razlika između Runnable i Thread
Razlika između Runnable i Thread

Slika 01: Java program za kreiranje niti koristeći Runnable interfejs

Prema gore navedenom programu, klasa Runnable Demo implementira Runnable interfejs. Metoda run() je unutar klase koja implementira Runnable interfejs. To je ulazna tačka za nit. Logika je u metodi run(). U glavnom programu, nit se kreira definiranjem objekta koji je instanciran iz Runnable Demo klase. To je t1. Start() metoda se poziva pomoću t1.

Pogledajte donji program.

Razlika između Runnable i Thread_Slika 02
Razlika između Runnable i Thread_Slika 02

Slika 02: Java program za kreiranje niti za izvršavanje petlje, implementacijom Runnable interfejsa

Prema gornjem primjeru, klasa Runnable Demo implementira Runnable interfejs. Logika za izvršavanje pomoću niti je napisana u run() metodi. U glavnom programu, nit se kreira definiranjem objekta koji je instanciran iz Runnable Demo klase. To je t1. Zatim, start() metoda se poziva pomoću t1.

Šta je Thread?

Drugi metod kreiranja niti je proširenje klase Thread. Sastoji se od tri koraka. Prvo je deklarisati klasu kao proširenje klase Thread. Nakon toga, treba napisati metodu run(). Ima redoslijed koraka koje nit treba izvršiti. Konačno, kreira se objekt niti i poziva se metoda start() da pokrene izvršenje niti. Pogledajte program ispod.

Razlika između Runnable i Thread_Slika 03
Razlika između Runnable i Thread_Slika 03

Slika 03: Java program koji proširuje klasu Thread

Prema gore navedenom programu, klasa MyThread proširuje klasu Thread. On nadjačava metodu run. Metoda run() sadrži logiku koju nit izvršava. To je ulazna tačka u nit. Zatim se kreira objekt niti. To je thread1. Nit se pokreće pomoću metode start(). On će izvršiti poziv run() metode.

Primjer programa dvije klase koji proširuju klasu Thread je sljedeći.

Ključna razlika između Runnable i Thread
Ključna razlika između Runnable i Thread

Slika 04: Java program sa dvije klase koje proširuju Thread klasu

Prema gore navedenom programu, i klase A i B proširuju klasu Thread. Obje klase imaju implementaciju run() metode. Glavna nit je ta koja izvršava metodu main(). Prije nego što glavna nit umre, ona kreira i pokreće thread1 i thread2. Dok glavna nit dođe do kraja glavne metode, tri niti rade paralelno. Ne postoji određeni redosled kojim niti daju izlaz. Jednom kada se nit pokrene, teško je odlučiti koji će nalog izvršiti. Trče samostalno.

Koje su sličnosti između Runnable-a i Thread-a?

Oboje koriste za kreiranje niti u Javi

Koja je razlika između Runnable i Thread?

Runnable vs Thread

Runnable je interfejs u Javi za kreiranje niti koja omogućava mnogim nitima da dijele isti objekt niti. Nit je klasa u Javi za kreiranje niti gdje svaka nit ima jedinstveni objekt povezan s njom.
Memorija
U Runnable-u, više niti dijele isti objekat, tako da je potrebno manje memorije. U klasi Thread, svaka nit kreira jedinstveni objekt, stoga zahtijeva više memorije.
Proširivanje sposobnosti
Nakon implementacije Runnable interfejsa, može proširiti klasu. Višestruka nasljeđivanja nisu podržana u Javi. Nakon proširenja Thread klase, ne može proširiti nijednu drugu klasu.
Kod Održavanje
Interfejs koji se može pokrenuti čini kod lakšim za održavanje. U klasi Thread, održavanje je dugotrajno.

Sažetak – Pokretanje vs Thread

Proces je podijeljen na više pod-procesa za obavljanje više zadataka u isto vrijeme. Ovi podprocesi su poznati kao niti. Instanciranje niti se može uraditi implementacijom Runnable interfejsa ili proširenjem klase Thread. Lako je proširiti klasu Thread, ali to nije bolja praksa objektno-orijentisanog programiranja. Kada se implementira Runnable, mnoge niti mogu dijeliti isti objekt niti dok u proširenoj klasi Thread svaka nit ima jedinstveni objekt povezan s njom. To je razlika između Runnable i Thread. U klasi Thread kreiranje više objekata može zauzeti više memorije.

Preuzmite PDF za Runnable vs Thread

Možete preuzeti PDF verziju ovog članka i koristiti ga za vanmrežne svrhe prema napomeni o citatu. Molimo preuzmite PDF verziju ovdje Razlika između Runnable i Thread

Preporučuje se: