Razlika med Runnable in Thread

Kazalo:

Razlika med Runnable in Thread
Razlika med Runnable in Thread

Video: Razlika med Runnable in Thread

Video: Razlika med Runnable in Thread
Video: RASA - Пчеловод | ПРЕМЬЕРА КЛИПА 2019 2024, Julij
Anonim

Ključna razlika – Runnable vs Thread

Program v izvajanju je znan kot proces. Proces lahko razdelimo na več podprocesov. Na primer, Microsoft Word je proces. Hkrati preveri črkovalne napake in slovnične napake. To je podproces. Ti podprocesi so znani kot niti. Večnitnost je postopek izvajanja več niti hkrati. Nitne aplikacije je mogoče zgraditi z uporabo različnih programskih jezikov. Runnable in Thread sta povezana s programiranjem Java. V Javi obstajata dve metodi za ustvarjanje niti z implementacijo vmesnika Runnable ali razširitvijo razreda Thread. Pri izvajanju Runnable lahko veliko niti deli isti objekt niti, medtem ko ima vsaka nit v razredu Extending Thread edinstven objekt, povezan z njo. To je ključna razlika med Runnable in Thread.

Kaj je Runnable?

Nit gre skozi nekatera stanja. »Novo« je začetek življenjskega cikla niti. Ko metoda start() pokliče novo nit, postane zagonljiva. Če razporejevalnik niti izbere nit, preide v stanje izvajanja. Nit čaka na stanje, če ta nit čaka na drugo nit za izvedbo naloge. Ko nit zaključi delo, preide v zaključeno stanje.

Nit je mogoče implementirati z uporabo vmesnika Runnable. Oglejte si spodnji program.

Razlika med Runnable in Thread
Razlika med Runnable in Thread

Slika 01: Program Java za ustvarjanje niti z uporabo vmesnika Runnable

V skladu z zgornjim programom razred Runnable Demo izvaja vmesnik Runnable. Metoda run() je znotraj razreda, ki izvaja vmesnik Runnable. Je vstopna točka za nit. Logika je v metodi run(). V glavnem programu je nit ustvarjena z definiranjem predmeta, ki je nastal iz razreda Runnable Demo. To je t1. Metoda start() se kliče z uporabo t1.

Glejte spodnji program.

Razlika med Runnable in Thread_Figure 02
Razlika med Runnable in Thread_Figure 02

Slika 02: Program Java za ustvarjanje niti za izvajanje zanke z implementacijo vmesnika Runnable

Glede na zgornji primer razred Runnable Demo implementira Runnable vmesnik. Logika za izvajanje z uporabo niti je zapisana v metodi run(). V glavnem programu je nit ustvarjena z definiranjem predmeta, ki je nastal iz razreda Runnable Demo. To je t1. Nato se z uporabo t1 pokliče metoda start().

Kaj je nit?

Druga metoda ustvarjanja niti je razširitev razreda Thread. Sestavljen je iz treh korakov. Prvi je, da razred razglasite kot razširitev razreda Thread. Nato je treba napisati metodo run(). Ima zaporedje korakov, ki jih mora izvesti nit. Nazadnje je ustvarjen objekt niti in poklicana je metoda start(), da se začne izvajanje niti. Oglejte si spodnji program.

Razlika med Runnable in Thread_Figure 03
Razlika med Runnable in Thread_Figure 03

Slika 03: Program Java, ki razširja razred Thread

Glede na zgornji program razred MyThread razširja razred Thread. Preglasi metodo zagona. Metoda run() vsebuje logiko, ki naj jo izvede nit. Je vstopna točka v nit. Nato se ustvari predmet niti. To je nit1. Nit se zažene z metodo start(). Izvedel bo klic metode run().

Primer programa dveh razredov, ki razširjata razred Thread, je naslednji.

Ključna razlika med Runnable in Thread
Ključna razlika med Runnable in Thread

Slika 04: Program Java z dvema razredoma, ki razširjata razred Thread

Glede na zgornji program razred A in B razširjata razred Thread. Oba razreda imata implementacijo metode run(). Glavna nit je tista, ki izvaja metodo main(). Preden glavna nit umre, ustvari in zažene nit1 in nit2. Ko glavna nit doseže konec glavne metode, se vzporedno izvajajo tri niti. Ni določenega vrstnega reda, v katerem niti dajejo izhod. Ko je nit enkrat zagnana, se je težko odločiti, kakšen vrstni red bodo izvedli. Tečejo neodvisno.

Kakšne so podobnosti med Runnable in Thread?

Oba uporabljata za ustvarjanje niti v Javi

Kakšna je razlika med Runnable in Thread?

Runnable vs Thread

Runnable je vmesnik v Javi za ustvarjanje niti, ki omogoča, da več niti deli isti predmet niti. Nit je razred v Javi za ustvarjanje niti, kjer ima vsaka nit povezan edinstven predmet.
Spomin
V Runnable si več niti deli isti objekt, zato potrebujejo manj pomnilnika. V razredu Thread vsaka nit ustvari edinstven objekt, zato potrebuje več pomnilnika.
Razširitev zmožnosti
Po implementaciji vmesnika Runnable lahko razširi razred. Večkratno dedovanje ni podprto v Javi. Po razširitvi razreda Thread ne more razširiti nobenega drugega razreda.
Vzdržljivost kode
Zagonski vmesnik naredi kodo bolj vzdržljivo. V razredu Thread je vzdrževanje zamudno.

Povzetek – Runnable vs Thread

Proces je razdeljen na več podprocesov za opravljanje več nalog hkrati. Ti podprocesi so znani kot niti. Instanciranje niti je mogoče izvesti z implementacijo vmesnika Runnable ali z razširitvijo razreda Thread. Razred Thread je enostavno razširiti, vendar to ni boljša praksa objektno orientiranega programiranja. Pri izvajanju Runnable lahko veliko niti deli isti objekt niti, medtem ko ima v razredu Thread razširitev vsaka nit z njo povezana edinstven objekt. To je razlika med Runnable in Thread. V razredu Thread lahko ustvarjanje več predmetov porabi več pomnilnika.

Prenesite PDF Runnable proti Thread

Lahko prenesete PDF različico tega članka in jo uporabite za namene brez povezave v skladu z opombo o citiranju. Prenesite PDF različico tukaj Razlika med Runnable in Thread

Priporočena: