Atšķirība starp izpildāmo un pavedienu

Satura rādītājs:

Atšķirība starp izpildāmo un pavedienu
Atšķirība starp izpildāmo un pavedienu

Video: Atšķirība starp izpildāmo un pavedienu

Video: Atšķirība starp izpildāmo un pavedienu
Video: ЯРКИЕ ТАПОЧКИ-СЛЕДКИ СПИЦАМИ. Без швов на подошве. МК для начинающих. 2024, Novembris
Anonim

Galvenā atšķirība - izpildāma pret pavedienu

Izpildes programma ir pazīstama kā process. Procesu var iedalīt vairākos apakšprocesos. Piemēram, Microsoft Word ir process. Tajā pašā laikā tā pārbauda pareizrakstības un gramatikas kļūdas. Tas ir apakšprocess. Šie apakšprocesi ir pazīstami kā pavedieni. Vairāku pavedienu veidošana ir process, kurā vienlaikus tiek izpildīti vairāki pavedieni. Vītņotās lietojumprogrammas var izveidot, izmantojot dažādas programmēšanas valodas. Runnable un Thread ir saistīti ar Java programmēšanu. Programmā Java ir divas metodes pavediena izveidei, ieviešot izpildāmu saskarni vai paplašinot Thread klasi. Ieviešot Runnable, daudzi pavedieni var koplietot vienu un to pašu pavediena objektu, savukārt klasē Extending Thread katram pavedienam ir ar to saistīts unikāls objekts. Tā ir galvenā atšķirība starp Runnable un Thread.

Kas ir darbināms?

Pavediens iet cauri dažiem stāvokļiem. “Jaunais” ir pavediena dzīves cikla sākums. Pēc tam, kad start() metode izsauc jaunu pavedienu, tas kļūst darbināms. Ja pavedienu plānotājs atlasa pavedienu, tas pāriet uz darbības stāvokli. Pavediens gaida stāvokli, ja šis pavediens gaida, kad cits pavediens veiks uzdevumu. Kad pavediens pabeidz darbu, tas pāriet uz beigu stāvokli.

Pavedienu var ieviest, izmantojot Runnable saskarni. Skatiet tālāk norādīto programmu.

Atšķirība starp Runnable un Thread
Atšķirība starp Runnable un Thread

Attēls 01: Java programma pavediena izveidei, izmantojot izpildāmo saskarni

Saskaņā ar iepriekš minēto programmu, klase Runnable Demo ievieš Runnable saskarni. Run () metode atrodas klasē, kas ievieš Runnable interfeisu. Tas ir pavediena ieejas punkts. Loģika ir palaišanas () metodē. Galvenajā programmā pavediens tiek izveidots, definējot objektu, kas tika izveidots no Runnable Demo klases. Tas ir t1. Start() metode tiek izsaukta, izmantojot t1.

Skatiet tālāk norādīto programmu.

Atšķirība starp Runnable un Thread_Figure 02
Atšķirība starp Runnable un Thread_Figure 02

Attēls 02: Java programma pavediena izveidei cilpas izpildei, ieviešot izpildāmo saskarni

Saskaņā ar iepriekš minēto piemēru, klase Runnable Demo ievieš Runnable interfeisu. Loģika, kas jāizpilda, izmantojot pavedienu, ir rakstīta ar metodi run (). Galvenajā programmā pavediens tiek izveidots, definējot objektu, kas tika izveidots no Runnable Demo klases. Tas ir t1. Pēc tam start() metode tiek izsaukta, izmantojot t1.

Kas ir pavediens?

Otra pavediena izveides metode ir Thread klases paplašināšana. Tas sastāv no trim soļiem. Pirmkārt, ir jādeklarē klase kā Thread klases paplašināšana. Pēc tam ir jāuzraksta metode run(). Tam ir darbību secība, kas pavedienam jāizpilda. Visbeidzot, tiek izveidots pavediena objekts un tiek izsaukta start() metode, lai uzsāktu pavediena izpildi. Skatiet tālāk norādīto programmu.

Atšķirība starp Runnable un Thread_Figure 03
Atšķirība starp Runnable un Thread_Figure 03

Attēls 03: Java programma, kas paplašina pavedienu klasi

Saskaņā ar iepriekš minēto programmu MyThread klase paplašina Thread klasi. Tas ignorē palaišanas metodi. Metode run () satur loģiku, kas jāizpilda pavedienam. Tas ir ieejas punkts pavedienam. Pēc tam tiek izveidots pavediena objekts. Tas ir pavediens1. Pavediens tiek sākts, izmantojot start() metodi. Tas izpildīs palaist() metodes izsaukumu.

Divu klašu paraugprogramma, kas paplašina Thread klasi, ir šāda.

Galvenā atšķirība starp Runnable un Thread
Galvenā atšķirība starp Runnable un Thread

Attēls 04: Java programma ar divām klasēm, kas paplašina pavedienu klasi

Saskaņā ar iepriekš minēto programmu gan A, gan B klase paplašina pavedienu klasi. Abām klasēm ir sava izpildes () metodes ieviešana. Galvenais pavediens ir tas, kas izpilda main() metodi. Pirms galvenā pavediena nomirst, tas izveido un sāk pavedienu1 un pavedienu2. Kamēr galvenais pavediens sasniedzis galvenās metodes beigas, paralēli darbojas trīs pavedieni. Nav noteiktas secības, kādā pavedieni dod izvadi. Kad pavediens ir sākts, ir grūti izlemt, kādu pasūtījumu tie izpildīs. Viņi darbojas neatkarīgi.

Kādas ir Runnable un Thread līdzības?

Abi izmanto, lai izveidotu pavedienu Java

Kāda ir atšķirība starp Runnable un Thread?

Runnable vs Thread

Runnable ir Java saskarne, lai izveidotu pavedienu, kas ļauj daudziem pavedieniem koplietot vienu un to pašu pavediena objektu. Pavediens ir Java klase, lai izveidotu pavedienu, kurā katram pavedienam ir ar to saistīts unikāls objekts.
Atmiņa
Runnable programmā vairākiem pavedieniem ir viens un tas pats objekts, tāpēc ir nepieciešams mazāk atmiņas. Pavedienu klasē katrs pavediens rada unikālu objektu, tāpēc ir nepieciešams vairāk atmiņas.
Iespējas paplašināšana
Pēc izpildāmās saskarnes ieviešanas tas var paplašināt klasi. Java netiek atbalstīti vairāki mantojumi. Pēc pavediena klases paplašināšanas tā nevar paplašināt nevienu citu klasi.
Koda uzturēšana
Palaižams interfeiss padara kodu labāk apkopjamu. Pavedienu klasē uzturēšana ir laikietilpīga.

Kopsavilkums - izpildāms pret pavedienu

Process ir sadalīts vairākos apakšprocesos, lai vienlaikus veiktu vairākus uzdevumus. Šie apakšprocesi ir pazīstami kā pavedieni. Pavedienu var izveidot, ieviešot Runnable saskarni vai paplašinot pavedienu klasi. Pavedienu klasi ir viegli paplašināt, taču tā nav labāka objektorientētās programmēšanas prakse. Ieviešot Runnable, daudzi pavedieni var koplietot vienu un to pašu pavediena objektu, savukārt paplašināšanas klasē Thread katram pavedienam ir ar to saistīts unikāls objekts. Tā ir atšķirība starp Runnable un Thread. Pavedienu klasē vairāku objektu izveide var patērēt vairāk atmiņas.

Lejupielādēt PDF failu Runnable vs Thread

Varat lejupielādēt šī raksta PDF versiju un izmantot to bezsaistē saskaņā ar atsauces piezīmi. Lūdzu, lejupielādējiet PDF versiju šeit Atšķirība starp izpildāmo un pavedienu

Ieteicams: