Esminis skirtumas - bėga prieš sriegį
Vykdoma programa yra žinoma kaip procesas. Procesą galima suskirstyti į kelis paprocesus. Pavyzdžiui, „Microsoft Word“yra procesas. Tuo pačiu metu tikrinama, ar nėra rašybos klaidų ir gramatikos. Tai yra paprocesas. Šie paprocesai yra žinomi kaip gijos. Daugialypis sriegis yra kelių gijų vienu metu vykdymas. Sriegines programas galima sukurti naudojant skirtingas programavimo kalbas. „Runnable“ir „Thread“siejami su „Java“programavimu. Yra du „Java“metodai, kaip sukurti giją įdiegiant „Runnable“sąsają arba išplėsti „Thread“klasę. Diegiant „Runnable“, daugelis gijų gali dalytis tuo pačiu gijos objektu, o „Extending Thread“klasėje kiekviena gija turi unikalų objektą. Tai yra pagrindinis „Runnable“ir „Thread“skirtumas.
TURINYS
1. Apžvalga ir pagrindiniai skirtumai
2. Kas yra bėgama
3. Kas yra siūlai
4. Veikiamo ir siūlų panašumai
5. Gretimas palyginimas - bėgimas ir siūlas lentelių pavidalu
6. Santrauka
Kas yra bėgama?
Siūlas eina per kai kurias būsenas. „Naujas“yra siūlų gyvavimo ciklo pradžia. Pradėjus () metodui pakviesti naują giją, jis tampa vykdomas. Jei gijų planavimo priemonė pasirenka giją, ji pereina į veikiančią būseną. Gija laukia būsenos, jei ta gija laukia, kol kita gija atliks užduotį. Kai gija baigia darbą, ji pereina į nutraukimo būseną.
Giją galima įdiegti naudojant „Runnable“sąsają. Peržiūrėkite žemiau pateiktą programą.
01 pav. „Java“programa gijai sukurti naudojant „Runnable“sąsają
Pagal pirmiau minėtą programą „Runnable Demo“klasė įdiegia „Runnable“sąsają. Metodas run () yra klasėje, įdiegiančioje Runnable sąsają. Tai yra gijos įvedimo vieta. Logika yra run () metodas. Pagrindinėje programoje gija sukuriama apibrėžiant objektą, kuris kilo iš „Runnable Demo“klasės. Tai t1. Pradžios () metodas vadinamas t1.
Peržiūrėkite žemiau pateiktą programą.
02 paveikslas: „Java“programa, skirta sukurti giją kilpai vykdyti, įdiegiant „Runnable“sąsają
Pagal pirmiau pateiktą pavyzdį klasės „Runnable Demo“įdiegia „Runnable“sąsają. Logika, kurią reikia atlikti naudojant giją, parašoma run () metodu. Pagrindinėje programoje gija sukuriama apibrėžiant objektą, kuris kilo iš „Runnable Demo“klasės. Tai t1. Tada pradžios () metodas vadinamas t1.
Kas yra gija?
Kitas gijos kūrimo būdas yra išplėsti gijų klasę. Jis susideda iš trijų žingsnių. Pirmiausia reikia paskelbti klasę kaip pratęsiančią siūlų klasę. Vėliau turėtų būti parašytas metodas run (). Jis turi veiksmus, kuriuos siūlas turėtų atlikti. Galiausiai sukuriamas gijos objektas ir inicijuojamas gijos vykdymas yra pradžios () metodas. Peržiūrėkite žemiau pateiktą programą.
03 pav. „Java“programa, pratęsianti „Thread“klasę
Pagal minėtą programą „MyThread“klasė praplečia „Thread“klasę. Tai nepaiso paleidimo metodo. Metode run () yra logika, kurią turi vykdyti gija. Tai yra gijos įvedimo taškas. Tada sukuriamas gijos objektas. Tai yra thread1. Siūlas pradedamas naudojant start () metodą. Tai atliks „call to run“() metodą.
Dviejų klasių programa, pratęsianti „Thread“klasę, yra tokia.
04 paveikslas: „Java“programa su dviem klasėmis, pratęsiančiomis „Thread“klasę
Pagal pirmiau pateiktą programą tiek A, tiek B klasės pratęsia „Thread“klasę. Abi klasės turi „run ()“metodo įgyvendinimą. Pagrindinė gija yra ta, kuri vykdo pagrindinį () metodą. Prieš miršta pagrindinis siūlas, jis sukuria ir paleidžia thread1 ir thread2. Kol pagrindinis siūlas pasiekė pagrindinio metodo pabaigą, lygiagrečiai eina trys siūlai. Nėra jokios konkrečios tvarkos, kuria gijos suteikia išvestį. Pradėjus giją, sunku nuspręsti, kokia tvarka jie bus vykdomi. Jie bėga savarankiškai.
Kuo panašūs „Runnable“ir „Thread“?
Abu jie naudoja sukurti „Java“giją
Koks skirtumas tarp bėgimo ir sriegio?
Skirtingas straipsnis viduryje prieš lentelę
Bėgamas vs siūlas |
|
„Runnable“yra „Java“sąsaja, skirta sukurti giją, leidžiančią daugeliui gijų dalytis tuo pačiu gijos objektu. | Gija yra „Java“klasė, skirta sukurti giją, kur kiekviena gija turi unikalų objektą. |
Atmintis | |
Programoje „Runnable“kelios gijos naudoja tą patį objektą, todėl reikia mažiau atminties. | „Thread“klasėje kiekviena gija sukuria unikalų objektą, todėl reikia daugiau atminties. |
Gebėjimo išplėtimas | |
Įdiegus „Runnable“sąsają, ji gali išplėsti klasę. | „Java“nepalaiko kelių paveldėjimų. Išplėtęs „Thread“klasę, jis negali pratęsti jokios kitos klasės. |
Kodo išlaikomumas | |
Paleidžiama sąsaja daro kodą prižiūrimesnį. | „Thread“klasėje išlaikyti reikia daug laiko. |
Santrauka - bėgama prieš sriegį
Procesas yra padalintas į kelis dalinius procesus, kad vienu metu būtų atliekamos kelios užduotys. Šie paprocesai yra žinomi kaip gijos. Instantuoti giją galima įdiegus „Runnable“sąsają arba praplečiant „Thread Class“. „Thread“klasę lengva išplėsti, tačiau tai nėra geresnė objektinio programavimo praktika. Diegiant „Runnable“, daugelis gijų gali dalytis tuo pačiu gijos objektu, tuo tarpu praplečiant gijų klasę kiekviena gija turi unikalų objektą. Tuo skiriasi „Runnable“ir „Thread“. „Thread“klasėje keli objektai 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 „Runnable“ir „Thread“