Erinevus käivitatava ja lõime vahel

Sisukord:

Erinevus käivitatava ja lõime vahel
Erinevus käivitatava ja lõime vahel

Video: Erinevus käivitatava ja lõime vahel

Video: Erinevus käivitatava ja lõime vahel
Video: Lahused ja pihused 2024, November
Anonim

Peamine erinevus – käivitatav vs lõim

Käites olevat programmi tuntakse protsessina. Protsessi saab jagada mitmeks alamprotsessiks. Näiteks Microsoft Word on protsess. Samal ajal kontrollib see õigekirja- ja grammatikavigu. See on alamprotsess. Neid alamprotsesse nimetatakse lõimedeks. Mitme lõimega töötlemine on mitme lõime samaaegse käivitamise protsess. Keermestatud rakendusi saab luua erinevate programmeerimiskeelte abil. Runnable ja Thread on seotud Java programmeerimisega. Javas on lõime loomiseks kaks meetodit Runnable liidese rakendamise või lõime klassi laiendamise teel. Runnable juurutamisel saavad paljud lõimed jagada sama lõimeobjekti, samas kui klassis Extending Thread on iga lõimega seotud kordumatu objekt. See on peamine erinevus Runnable ja Thread vahel.

Mis on käivitatav?

Lõim läbib mõningaid olekuid. "Uus" on niidi elutsükli algus. Pärast seda, kui meetod start() kutsub uut lõime, muutub see käivitatavaks. Kui lõime ajakava valib lõime, läheb see tööolekusse. Lõim ootab olekut, kui see lõim ootab ülesande täitmiseks teist lõime. Kui lõim on töö lõpetanud, läheb see lõpetamisolekusse.

Lõime saab rakendada Runnable liidese abil. Vaadake allolevat programmi.

Erinevus Runnable ja Thread vahel
Erinevus Runnable ja Thread vahel

Joonis 01: Java programm lõime loomiseks käivitatava liidese abil

Vastav alt ül altoodud programmile rakendab Runnable Demo klass Runnable liidest. Meetod run () on klassi sees, mis rakendab Runnable liidest. See on lõime sisenemispunkt. Loogika on meetodis run(). Põhiprogrammis luuakse lõim, määratledes objekti, mis instantseeriti Runnable Demo klassist. See on t1. Meetodi start() kutsumiseks kasutatakse t1.

Vaadake allolevat programmi.

Erinevus Runnable ja Thread_Joonis 02
Erinevus Runnable ja Thread_Joonis 02

Joonis 02: Java programm tsükli käivitamiseks lõime loomiseks, rakendades käivitatava liidese

Vastav alt ül altoodud näitele rakendab Runnable Demo klass Runnable liidest. Lõime abil käivitatav loogika on kirjutatud meetodis run(). Põhiprogrammis luuakse lõim, määratledes objekti, mis instantseeriti Runnable Demo klassist. See on t1. Seejärel kutsutakse meetod start() välja, kasutades t1.

Mis on lõim?

Teine lõime loomise meetod on lõime klassi laiendamine. See koosneb kolmest etapist. Esiteks on klass deklareerida Thread klassi laiendajana. Seejärel tuleks kirjutada meetod run(). Sellel on toimingute jada, mille lõim peaks täitma. Lõpuks luuakse lõime objekt ja lõime käivitamiseks kutsutakse meetod start(). Vaadake allolevat programmi.

Erinevus Runnable ja Thread_Joonis 03
Erinevus Runnable ja Thread_Joonis 03

Joonis 03: Java programm, mis laiendab lõime klassi

Vastav alt ül altoodud programmile laiendab MyThread klass Thread klassi. See tühistab käitamismeetodi. Meetod run() sisaldab lõime poolt täidetavat loogikat. See on lõime sisenemispunkt. Seejärel luuakse niidiobjekt. See on thread1. Lõim käivitatakse meetodi start() abil. See käivitab meetodi run() kutse.

Kahe klassi näide, mis laiendab lõime klassi, on järgmine.

Peamised erinevused käivitatava ja lõime vahel
Peamised erinevused käivitatava ja lõime vahel

Joonis 04: Java programm kahe klassiga, mis laiendavad lõime klassi

Vastav alt ül altoodud programmile laiendavad nii klass A kui ka B lõimeklassi. Mõlemal klassil on meetodi run() rakendamine. Peamine lõim on see, mis käivitab meetodi main(). Enne peamise lõime suremist loob ja käivitab see lõime 1 ja lõime 2. Selleks ajaks, kui põhilõng jõudis põhimeetodi lõpuni, jookseb paralleelselt kolm lõime. Ei ole kindlat järjekorda, milles niidid väljundit annavad. Kui lõime on käivitatud, on raske otsustada, millist järjekorda nad täidavad. Nad töötavad iseseisv alt.

Millised on käivitatava ja lõime sarnasused?

Mõlemad kasutavad Javas lõime loomiseks

Mis vahe on käivitataval ja lõimel?

Käitatav vs lõim

Runnable on Java liides lõime loomiseks, mis võimaldab paljudel lõimedel jagada sama lõimeobjekti. Lõim on Java klass lõime loomiseks, kus iga lõimega on seotud ainulaadne objekt.
Mälu
Käivitatavas jagavad mitu lõime sama objekti, seega vajavad vähem mälu. Klassis Thread loob iga lõim unikaalse objekti, mistõttu on vaja rohkem mälu.
Võime laiendamine
Pärast Runnable liidese rakendamist saab see klassi laiendada. Java ei toetata mitut pärandit. Pärast lõime klassi laiendamist ei saa see laiendada ühtegi teist klassi.
Koodi hooldatavus
Käitatav liides muudab koodi hooldatavamaks. Triimi klassis on hooldamine aeganõudev.

Kokkuvõte – käivitatav vs lõim

Protsess on jagatud mitmeks alamprotsessiks, et täita korraga mitut ülesannet. Neid alamprotsesse nimetatakse lõimedeks. Lõime saab luua Runnable liidese juurutamise või lõime klassi laiendamise kaudu. Thread klassi on lihtne laiendada, kuid see pole parem objektorienteeritud programmeerimise tava. Runnable juurutamisel saavad paljud lõimed jagada sama lõimeobjekti, samas kui laiendatavas Thread klassis on iga lõimega seotud ainulaadne objekt. See on Runnable ja Threadi erinevus. Thread klassis võib mitme objekti loomine kulutada rohkem mälu.

Laadige alla PDF-fail Runnable vs Thread

Saate alla laadida selle artikli PDF-versiooni ja kasutada seda võrguühenduseta kasutamiseks vastav alt tsitaadi märkusele. Laadige PDF-versioon alla siit. Erinevus käivitatava ja lõime vahel

Soovitan: