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ą.
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ą.
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ą.
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.
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