Runnable ir Thread skirtumas

Turinys:

Runnable ir Thread skirtumas
Runnable ir Thread skirtumas

Video: Runnable ir Thread skirtumas

Video: Runnable ir Thread skirtumas
Video: MultiThreading in Java Theory 2024, Lapkritis
Anonim

Pagrindinis skirtumas – paleidžiamas ir sriegis

Vykdoma programa žinoma kaip procesas. Procesą galima suskirstyti į kelis subprocesus. Pavyzdžiui, „Microsoft Word“yra procesas. Tuo pačiu metu tikrinama, ar nėra rašybos klaidų ir gramatikos. Tai yra subprocesas. Šie subprocesai yra žinomi kaip gijos. Kelių gijų kūrimas yra procesas, kai vienu metu vykdomos kelios gijos. Srieginės programos gali būti sukurtos naudojant skirtingas programavimo kalbas. Runnable ir Thread yra susieti su Java programavimu. „Java“yra du metodai, kaip sukurti giją, įdiegiant paleidžiamą sąsają arba išplečiant gijos klasę. Diegiant Runnable, daugelis gijų gali bendrinti tą patį gijos objektą, o Extending Thread klasėje kiekviena gija turi su ja susietą unikalų objektą. Tai yra pagrindinis skirtumas tarp Runnable ir Thread.

Kas yra paleidžiama?

Grieja eina per kai kurias būsenas. „Naujas“yra siūlų gyvavimo ciklo pradžia. Kai metodas start() iškviečia naują giją, ji tampa paleidžiama. Jei gijų planavimo priemonė pasirenka giją, ji pereina į veikimo būseną. Gija laukia būsenos, jei ta gija laukia, kol kita gija atliks užduotį. Kai gija baigia darbą, ji pereina į pabaigos būseną.

Giją galima įdiegti naudojant Runnable sąsają. Žiūrėkite toliau pateiktą programą.

Skirtumas tarp Runnable ir Thread
Skirtumas tarp Runnable ir Thread

01 pav.: „Java“programa, skirta sukurti giją naudojant vykdomąją sąsają

Pagal aukščiau pateiktą programą, klasė Runnable Demo įgyvendina Runnable sąsają. Metodas run () yra klasėje, kuri įgyvendina Runnable sąsają. Tai gijos įėjimo taškas. Logika yra run() metode. Pagrindinėje programoje gija sukuriama apibrėžiant objektą, kuris buvo sukurtas iš Runnable Demo klasės. Tai t1. Metodas start() iškviečiamas naudojant t1.

Žiūrėkite toliau pateiktą programą.

Skirtumas tarp Runnable ir Thread_02 pav
Skirtumas tarp Runnable ir Thread_02 pav

02 pav. „Java“programa, skirta sukurti giją, kuri paleisti kilpą, įgyvendinant paleidžiamą sąsają

Pagal pirmiau pateiktą pavyzdį, klasė Runnable Demo įgyvendina Runnable sąsają. Logika, kurią reikia vykdyti naudojant giją, parašyta run() metodu. Pagrindinėje programoje gija sukuriama apibrėžiant objektą, kuris buvo sukurtas iš Runnable Demo klasės. Tai t1. Tada metodas start() iškviečiamas naudojant t1.

Kas yra gija?

Kitas gijos kūrimo būdas yra gijų klasės išplėtimas. Jį sudaro trys žingsniai. Pirmiausia reikia paskelbti klasę kaip siūlų klasės išplėtimą. Po to reikia parašyti run() metodą. Jame yra veiksmų seka, kurią gija turi atlikti. Galiausiai sukuriamas gijos objektas ir iškviečiamas start() metodas, kuris inicijuoja gijos vykdymą. Žiūrėkite toliau pateiktą programą.

Skirtumas tarp Runnable ir Thread_03 pav
Skirtumas tarp Runnable ir Thread_03 pav

03 pav.: Java programa, kuri praplečia gijos klasę

Pagal aukščiau pateiktą programą, MyThread klasė išplečia gijų klasę. Jis nepaiso paleidimo metodo. Metode run() yra logika, kurią turi vykdyti gija. Tai įėjimo į giją taškas. Tada sukuriamas gijos objektas. Tai siūlas1. Siūlas pradedamas naudojant start() metodą. Jis vykdys iškvietimą paleisti() metodą.

Dviejų klasių programos, išplečiančios gijos klasę, pavyzdys yra toks.

Pagrindinis Runnable ir Thread skirtumas
Pagrindinis Runnable ir Thread skirtumas

04 pav.: Java programa su dviem klasėmis, kurios praplečia gijos klasę

Pagal pirmiau pateiktą programą, tiek A, tiek B klasė išplečia gijų klasę. Abi klasės turi run() metodo įgyvendinimą. Pagrindinė gija yra tai, kuri vykdo main() metodą. Prieš išnykstant pagrindiniam siūlui, jis sukuria ir paleidžia giją1 ir giją2. Tuo metu, kai pagrindinis siūlas pasiekia pagrindinio metodo pabaigą, lygiagrečiai veikia trys gijos. Nėra konkrečios tvarkos, kuria gijos pateikia išvestį. Pradėjus giją sunku nuspręsti, kokią tvarką jie vykdys. Jie veikia savarankiškai.

Kokie yra Runnable ir Thread panašumai?

Abu naudojami kurdami Java giją

Kuo skiriasi paleidžiamasis ir gijos?

Runnable vs Thread

Runnable yra „Java“sąsaja, skirta sukurti giją, leidžiančią daugeliui gijų bendrinti tą patį gijos objektą. Gija yra Java klasė, skirta sukurti giją, kurioje kiekviena gija turi su ja susietą unikalų objektą.
Atmintis
Naudojant Runnable, kelios gijos dalijasi tuo pačiu objektu, todėl reikia mažiau atminties. Gijų klasėje kiekviena gija sukuria unikalų objektą, todėl reikia daugiau atminties.
Gebėjimo išplėtimas
Įdiegę vykdomąją sąsają, ji gali išplėsti klasę. Java nepalaiko kelių paveldėjimo būdų. Išplėtus gijos klasę, ji negali išplėsti jokios kitos klasės.
Kodo priežiūra
Paleidžiama sąsaja leidžia lengviau prižiūrėti kodą. Tread klasėje priežiūra užima daug laiko.

Santrauka – paleidžiama prieš giją

Procesas yra padalintas į kelis antrinius procesus, kad būtų galima atlikti kelias užduotis vienu metu. Šie subprocesai yra žinomi kaip gijos. Gijos egzempliorius gali būti atliktas įdiegus Runnable sąsają arba išplečiant gijų klasę. Lengva išplėsti gijų klasę, tačiau tai nėra geresnė objektinio programavimo praktika. Diegiant Runnable, daugelis gijų gali bendrinti tą patį gijos objektą, o išplėstinėje gijos klasėje kiekviena gija turi su ja susietą unikalų objektą. Tai yra skirtumas tarp Runnable ir Thread. Thread klasėje kelių objektų kūrimas gali užimti daugiau atminties.

Atsisiųskite Runnable vs Thread PDF failą

Galite atsisiųsti šio straipsnio PDF versiją ir naudoti ją neprisijungus, kaip nurodyta citatos pastaboje. Atsisiųskite PDF versiją čia. Skirtumas tarp paleidžiamo ir gijos

Rekomenduojamas: