Peamine erinevus - joostav vs lõng
Käivitatavat programmi nimetatakse protsessiks. Protsessi võib jagada mitmeks alamprotsessiks. Näiteks Microsoft Word on protsess. Samal ajal kontrollib see õigekirjaviga ja grammatikat. See on alamprotsess. Neid alamprotsesse nimetatakse niitideks. Mitme lõimimine on mitme lõime samaaegne käivitamine. Keermestatud rakendusi saab koostada erinevate programmeerimiskeelte abil. Runnable ja Thread on seotud Java programmeerimisega. Javas on lõime loomiseks käivitatava liidese juurutamise või klassi Thread laiendamise kaudu kaks meetodit. Runnable'i juurutamisel saavad paljud lõimed jagada sama lõimeobjekti, samas kui klassis Laiendamine lõime on igal lõimel seotud ainulaadne objekt. See on peamine erinevus Runnable ja Thread vahel.
SISU
1. Ülevaade ja
põhierinevus 2. Mis on joostav
3. Mis on lõime
4. Jooksva ja lõime sarnasused
5. Kõrvuti võrdlus - jooksev vs lõng tabelina
6. Kokkuvõte
Mis on joostav?
Mõnest olekust läbib niit. “Uus” on lõime elutsükli algus. Pärast seda, kui algus () meetod kutsub uue lõime, saab see käivitatavaks. Kui lõime ajastaja valib lõime, läheb see üle jooksvasse olekusse. Lõng ootab olekut, kui see lõim ootab ülesande täitmiseks teist lõime. Pärast lõime töö lõpetamist läheb see lõpetamise olekusse.
Lõnga saab rakendada liidese Runnable abil. Vaadake allolevat programmi.
Joonis 01: Java-programm lõime loomiseks Runnable-liidese abil
Ülaltoodud programmi kohaselt rakendab klassi Runnable Demo Runnable liidese. Run () meetod on klassis, mis rakendab Runnable liidest. See on lõime sisestuspunkt. Loogika on meetod run (). Põhiprogrammis luuakse lõim objekti määratlemisega, mis ilmnes klassist Jooksev demo. On t1. Start () meetodit nimetatakse t1 abil.
Vaadake allolevat programmi.
Joonis 02: Java-programm tsükli käivitamiseks lõime loomiseks, käivitades liidese Runnable
Ülaltoodud näite kohaselt rakendab klassi Runnable Demo Runnable liidest. Lõime abil käivitatav loogika on kirjutatud run () meetodis. Põhiprogrammis luuakse lõim objekti määratlemisega, mis ilmnes klassist Jooksev demo. On t1. Seejärel nimetatakse start () meetodit t1 abil.
Mis on niit?
Teine lõime loomise meetod on klassi Thread laiendamine. See koosneb kolmest etapist. Esiteks on kuulutada klass niidi laiendajaks. Pärast tuleks kirjutada meetod run (). Sellel on sammude järjestus, mille lõng peaks käivitama. Lõpuks luuakse lõimeobjekt ja lõime käivitamise algatamiseks kutsutakse meetod start (). Vaadake allolevat programmi.
Joonis 03: Java-programm, mis laiendab lõimeklassi
Vastavalt ülaltoodud programmile laiendab MyThreadi klass Threadi. See alistab käitamismeetodi. Run () meetod sisaldab lõime käivitatava loogika. See on lõime sisenemispunkt. Seejärel luuakse lõimeobjekt. See on niit1. Lõng käivitatakse meetodiga start (). See käivitab kõne käitamiseks () meetodi.
Kahest klassist lõime laiendava klassi näidisprogramm on järgmine.
Joonis 04: Java-programm kahe klassiga, mis laiendavad Thread-klassi
Vastavalt ülaltoodud programmile laiendavad nii A- kui ka B-klass Thread-klassi. Mõlemal klassil on run () meetod rakendatud. Peamine lõime on see, mis täidab peamise () meetodi. Enne peaniidi surma loob ja käivitab lõime1 ja lõime2. Selleks ajaks, kui peaniit põhimeetodi lõppu jõudis, töötavad paralleelselt kolm lõime. Keermed ei anna väljundit kindlas järjekorras. Kui lõim on alustatud, on raske otsustada, millist järjekorda nad täidavad. Nad jooksevad iseseisvalt.
Millised on jooksva ja lõime sarnasused?
Mõlemad kasutavad Java lõime loomiseks
Mis vahe on joostava ja niidi vahel?
Erinev artikkel keskel enne tabelit
Jooksev vs lõime |
|
Runnable on Java liides lõime loomiseks, mis võimaldab paljudel lõimudel sama lõimeobjekti jagada. | Lõng on Java-klass, mis loob lõime, kus igal lõimel on seotud ainulaadne objekt. |
Mälu | |
Rakendis Runnable jagavad mitut lõime sama objekti, seega on vaja vähem mälu. | Klassis Thread loob iga lõime ainulaadse objekti, mistõttu on vaja rohkem mälu. |
Võime laiendamine | |
Pärast Runnable liidese juurutamist võib see klassi laiendada. | Java ei toeta mitut pärimist. Pärast Thread-klassi laiendamist ei saa see ühtegi teist klassi laiendada. |
Koodi hooldatavus | |
Töötav liides muudab koodi hooldatavamaks. | Threadi klassis on hooldamine aeganõudev. |
Kokkuvõte - joostav vs lõng
Protsess on jagatud mitmeks alamprotsessiks mitme ülesande samaaegseks täitmiseks. Neid alamprotsesse nimetatakse niitideks. Lõnga saab instantsida Runnable liidese juurutamise või lõimeklassi laiendamise abil. Thread-klassi on lihtne laiendada, kuid see pole parem objekt-orienteeritud programmeerimise praktika. Runnable'i juurutamisel saavad paljud lõimed jagada sama lõimeobjekti, samas kui lõimklassi laiendamisel on igal lõimel seotud ainulaadne objekt. See on erinevus Runnable ja Thread vahel. Klassis Thread võib mitme objekti loomine tarbida rohkem mälu.
Laadige alla Runnable vs Thread
Selle artikli PDF-versiooni saate alla laadida ja kasutada võrguühenduseta eesmärkidel, nagu tsiteeritud. Laadige PDF-versioon siit alla Jooksva ja lõime erinevus