Teostatavat programmi nimetatakse protsessiks. Protsessi võib jagada mitmeks alaprotsessiks. Näiteks Microsoft Word on protsess. Samal ajal kontrollib see kirjavigu ja grammatikat. See on alamprotsess. Neid alamprotsesse nimetatakse keermeteks. Mitmekeermeline on mitme lõime samaaegne täitmine. Keermestatud rakendusi saab luua erinevate programmeerimiskeelte abil. Käitatavad ja lõime on seotud Java programmeerimisega. Javas on lõime loomiseks kaks meetodit, rakendades käivitatavat liidest või laiendades niidiklassi. Käivitatava juurutamisel saavad paljud lõimed jagada sama lõimeobjekti, samas kui laiendatava lõime klassis on igal niidil sellega seotud kordumatu objekt. See on see võtme erinevus käitatava ja lõime vahel.
1. Ülevaade ja peamised erinevused
2. Mis on käivitatav
3. Mis on niit
4. Sarnasused käitatava ja keerme vahel
5. Kõrvuti võrdlus - käitatav vs niit tabelina
6. Kokkuvõte
Niit läbib mõnda olekut. “Uus” on lõime elutsükli algus. Pärast seda, kui start () meetod kutsub uue lõime, muutub see käitatavaks. Kui lõimede planeerija valib lõime, läheb see tööasendisse. Niit ootab olekut, kui see lõim ootab toimingu tegemiseks teist lõime. Pärast seda, kui niit on töö lõpule viidud, läheb see lõpetamise olekusse.
Lõime saab rakendada liidese Runnable abil. Vaadake allolevat programmi.
Joonis 01: Java-programm lõime loomiseks Runnable-liidese abil
Ülaltoodud programmi kohaselt rakendab klass Runnable Demo Runnable liidest. Run () meetod on klassis, mis rakendab käivitatavat liidest. See on lõime sisenemispunkt. Loogika on meetodil run (). Põhiprogrammis luuakse niit, määratledes objekti, mis on käivitatud Runnable Demo klassist. See on t1. Start () meetodit nimetatakse t1 abil.
Vaadake allolevat programmi.
Joonis 02: Java-programm lõime loomiseks ahela täitmiseks, käivitades käitatava liidese
Ülaltoodud näite kohaselt rakendab klass Runnable Demo Runnable liidest. Lõime abil käivitatav loogika on kirjutatud meetodil run (). Põhiprogrammis luuakse niit, määratledes objekti, mis on käivitatud Runnable Demo klassist. See on t1. Seejärel nimetatakse meetodit start () kasutades t1.
Teine lõime loomise meetod on lõime klassi laiendamine. See koosneb kolmest etapist. Esiteks tuleb kuulutada klass laiendavaks klassiks. Seejärel tuleks kirjutada run () meetod. Sellel on toimingute jada, mida niit peaks täitma. Lõpuks luuakse lõimeobjekt ja lõime täitmise algatamiseks kutsutakse start () meetod. Vaadake allolevat programmi.
Joonis 03: Java-programm, mis laiendab niidiklassi
Ülaltoodud programmi kohaselt laiendab MyThread klass niidiklassi. See tühistab käitamismeetodi. Run () meetod sisaldab loogikat, mida lõim peab täitma. See on lõime sisenemispunkt. Siis luuakse lõimeobjekt. See on niit1. Niit käivitatakse start () meetodil. See viib läbi käivituskutse () meetodi.
Lõimiklassi laiendava kahe klassi näidisprogramm on järgmine.
Joonis 04: Kahe klassiga Java-programm, mis laiendab niidiklassi
Ülaltoodud programmi kohaselt laiendavad nii klass A kui ka B niidiklassi. Mõlemal klassil on run () meetodi rakendamine. Põhilõng on see, mis käivitab meetodi main (). Enne peamise lõime suremist loob ja käivitab thread1 ja thread2. Selleks ajaks, kui peamine niit jõudis põhimeetodi lõpuni, töötab paralleelselt kolm lõime. Puudub konkreetne järjekord, milles lõimed väljundit annavad. Kui lõime on käivitatud, on raske otsustada, millises järjekorras need täidetakse. Nad jooksevad iseseisvalt.
Käitatav vs niit | |
Runnable on Java liides lõime loomiseks, mis võimaldab paljudel lõimedel jagada sama lõimeobjekti. | See teema on Java klass, mille abil luuakse lõime, kus igal niidil on sellega seotud unikaalne objekt. |
Mälu | |
Käivitatavas jagavad mitu lõime sama objekti, seega on vaja vähem mälu. | Niidiklassis loob iga niit ainulaadse objekti ja nõuab seetõttu rohkem mälu. |
Võime laiendamine | |
Pärast käivitatava liidese juurutamist saab see klassi laiendada. | Java ei toeta mitut pärimist. Pärast niidiklassi laiendamist ei saa see laiendada ühtegi teist klassi. |
Koodi hooldatavus | |
Käivitatav liides muudab koodi hooldatavamaks. | Niidiklassis on hooldus aeganõudev. |
Protsess jaguneb mitmeks alamprotsessiks, et täita korraga mitu toimingut. Neid alamprotsesse nimetatakse keermeteks. Nimi saab uuesti kiirata, käivitades liidese Runnable või laiendades niidiklassi. Niitklassi on lihtne laiendada, kuid see pole parem objektorienteeritud programmeerimispraktika. Käivitatava juurutamisel saavad paljud lõimed jagada sama lõimeobjekti, samas kui lõimiklassi laiendamisel on igal niidil sellega ainulaadne objekt. See on käitatava ja lõime erinevus. Keeruklassis võib mitme objekti loomine kulutada rohkem mälu.
Selle artikli PDF-versiooni saate alla laadida ja seda võrguühenduseta otstarbel kasutada tsitaatide märkuse kohaselt. Laadige alla PDF-versioon siit. Käivitatava ja lõime erinevus
1.tutorialspoint.com. “Java mitmekordne lõime”. The Point, saadaval siit
2.Pramodbablad. “Laiendab lõime Vs, mis on Java-s käivitatav.” Päeva Java kontseptsioon, 11. november 2016. Saadaval siin
3. Lõime loomise võimalused Java mitmekeermeliseks | Core Java õpetus | Õppeaeg. Saadaval siin