Atšķirība starp miegu un gaidīšanu Java

Galvenā atšķirība - miegs vs gaidīšana Java
 

Miega režīms un nogaidīšana ir divas Java lietošanā izmantotas metodes. Miega metode pieder pavedienu klasei, bet gaidīšanas metode ir klasei Objekts. galvenā atšķirība starp miegu un gaidīšanu Java ir tas, ka miega režīms tiek izmantots, lai apturētu pašreizējā pavediena izpildi noteiktam milisekundžu skaitam, kamēr tiek izmantota nogaidīšanas metode, kas liek pašreizējam pavedienam gaidīt, kamēr cits pavediens objektam izsauc paziņošanas vai paziņošanas metodi..

Vītne ir operētājsistēmas mazākā apstrādes vienība. Tā ir viena secīga vadības plūsma programmas ietvaros. Vītnes ir vieglas. Daudzkārtīga vītne ir vairāku pavedienu vienlaikus vadīšanas mehānisms. Programmēšanas valodas, piemēram, Java, atbalsta vairāku pavedienu izveidi. Daudzkārtējai vītnei ir priekšrocības, jo tā ļauj vienlaikus palaist vairākus pavedienus un pavedieni ir neatkarīgi viens no otra. Java ir metodes, kuras var izmantot vairāku pavedienu veidošanai. Divas no tām gulēt un gaidīt.

SATURS

1. Pārskats un galvenās atšķirības
2. Kas ir miegs Java?
3. Kas Java ir jāgaida?
4. Miega un gaidīšanas līdzības Java
5. Salīdzinājums blakus - gulēt vs gaidīt Java tabulas formā
6. Kopsavilkums

Kas ir miegs Java?

Operētājsistēmā darbojas vairāki procesi. Process ir izpildes programma. Katrā procesā var būt vairāki pavedieni, un starp šiem pavedieniem notiek konteksta maiņa. Java ir divi veidi, kā izveidot pavedienu. Tas ir, paplašinot pavedienu klasi vai ieviešot Runnable saskarni. Thread klasē ir konstruktori un metodes, lai izveidotu un veiktu operācijas ar pavedienu. Pavedienu klase paplašina Object klasi un ievieš Runnable saskarni. Palaižamā saskarne jāievieš jebkurai klasei, kuras gadījumus paredzēts izpildīt ar pavedienu. Kad pavediens tiek izpildīts, kods, kas jāizpilda, tiek ierakstīts izpildes metodē. Vītni, kurai vajadzētu darboties, izvēlas pavedienu plānotājs. Vienā procesā tiek palaists tikai viens pavediens.

Vītne iet cauri vairākām fāzēm. Pēc pavediena klases objekta izveidošanas programmētājs var izmantot starta metodi. Pirms izmantot šo metodi, tiek teikts, ka pavediens ir jaunā stāvoklī. Pavedienu plānotājs izvēlas palaišanu. Ja pavedienu plānotājs vēl nav izvēlējies pavedienu, bet, ja tiek izsaukta sākuma metode, pavediens ir izpildāmā stāvoklī. Pēc tam, kad pavedienu plānotājs izvēlas izpildāmo pavedienu, tas pāriet darba stāvoklī. Ja pavediens ir dzīvs, bet šobrīd to nevar palaist, tas ir neizpildāms vai bloķēts. Pēc palaišanas metodes pabeigšanas pavediens nonāk pārtrauktajā stāvoklī. Tās ir pavedienu dzīves cikla galvenās fāzes.

Vītņu klasē ir pieejamas dažādas metodes dažādu uzdevumu veikšanai. Miega metodi izmanto, lai metodi gulētu noteiktu laika periodu. Miega metodes sintakse ir publisks tukšs miegs (garas milisekundes), kas pārtrauc InterruptedException. Tas izraisa pašreizējo pavedienu, lai apturētu izpildi uz laiku noteiktam milisekunžu skaitam. Ja cits pavediens pārtrauc pašreizējo pavedienu, kad tiek izmests šis izņēmums, pašreizējā pavediena pārtrauktais statuss tiek dzēsts.

01. attēls: Java programma ar miega metodi

Saskaņā ar iepriekš minēto programmu palaišanas metode satur kodu, kas būtu jāizpilda. Pamatprogrammā tiek izveidoti divi ExampleThread1 objekti, un uz tiem tiek izsauktas sākuma metodes. Tas ļaus palaist kodu izpildes metodē. Vienlaicīgi tiek izpildīts tikai viens pavediens. Ar pavedienu. gulēt (1000); ļaus pirmajam pavedienam pārtraukt izpildi par 1000 milisekundēm. Kad pavediens guļ, diegu plānotājs uzņem otru pavedienu.

Kas ir jāgaida Java?

Vairāki pavedieni var piekļūt koplietotajam resursam. Tas var izraisīt nepareizas izvades ģenerēšanu. Pavedienu sinhronizāciju var izmantot, lai izveidotu tikai vienu pavedienu, lai piekļūtu kopīgotajam resursam. Pieņemiet situāciju šādi. Ja ir divi pavedieni kā t1 un t2, t1 sāciet vērtību saglabāšanu teksta failā ar nosaukumu Text1.txt. Šīs vērtības tiks izmantotas citos aprēķinos, kad atgriezīsies t1. Ja t2 sākas pirms t1 atgriežas, t2 var mainīt vērtības, kas saglabātas ar t1. Tas var izraisīt t1 nepareizu izvadi. Kad t1 sāk izmantot failu Text1.txt, ar sinhronizācijas palīdzību šo failu var bloķēt, tāpēc tam var piekļūt tikai t1. T2 nevar to mainīt, kamēr t1 neatbrīvo bloķēšanu, lai piekļūtu šim teksta failam. Kad uzdevums ir izpildīts, t1 var atbrīvot slēdzeni. Slēdzeni sauc arī par monitoru.

Vītņu sinhronizāciju var panākt, izmantojot diegu savstarpējo saziņu. Kritiskā sadaļa ir koda segments, kas piekļūst koplietotajiem resursiem. Starppavedienu saziņā pavediens tiek apturēts, kas darbojas tā kritiskajā sadaļā, un tajā pašā izpildāmajā kritiskajā sadaļā ir atļauts ienākt citam pavedienam. Tas tiek ieviests, izmantojot nogaidīšanas, paziņošanas un paziņošanas metodes. Viņi pieder klasei Object. Gaidīšanas metode tiek izmantota, lai ļautu pašreizējam pavedienam atbrīvot bloķēšanu un gaidīt, kamēr cits pavediens objektam izsauks metodi “paziņot vai paziņot”. Paziņošanas metode tiek izmantota, lai pamodinātu atsevišķu pavedienu, kas gaida bloķēšanu. PaziņotAtviens pamost visus pavedienus, kas gaida bloķēšanu.

02 attēls: Kalkulatora klase

03. attēls. Galvenā metode

Kalkulatora klase pagarina pavedienu. Sinhronizētais bloks atrodas izpildes metodē. Forma cilpai un paziņošanai ir sinhronizētajā blokā. Galvenajā metodē tajā instancē tiek izveidots pavediena piemērs un sākuma metode. Galvenā metode gaidīs, līdz pavediens sniegs paziņojumu. Izpildot programmu, galvenā metode gaida visu palaistās metodes izpildi un gaida paziņošanas metodi. Tiklīdz tiek izsaukta paziņošanas metode, galvenā metode pārstāj gaidīt un sāk izpildīt pārējo kodu. Galvenais gaida, kamēr kalkulatora pavediens būs pabeigts. Visbeidzot tiek izdrukāts summas rezultāts.

Ja nav sinhronizēta bloka un ja galvenajai metodei ir kods, kā norādīts zemāk, tas sniegs izvadi kā nulli, jo tas negaida, kamēr tiks pabeigta otra vītne.

Kalkulators t1 = jauns Kalkulators ();

 t1. sākt ();

System.out.println (t1.sum);

Kāda ir miega un gaidīšanas līdzība Java?

  • Gan miegs, gan gaidīšana ir metodes, kuras var izmantot, Java ieviešot daudzpavedienu

Kāda ir Java un miega un gaidīšanas atšķirība?

gulēt vs gaidīt Java

Miega metode liek pašreizējam pavedienam apturēt izpildi noteiktam milisekunžu skaitam, ievērojot sistēmas taimeru un plānotāju precizitāti un precizitāti.. Gaidīšanas metode liek pašreizējam pavedienam gaidīt, kamēr cits pavediens objektam izsauc metodi “paziņot vai paziņot”.
 Asociācija ar Lock
Miega metode sinhronizācijas laikā neatbrīvo objekta bloķēšanu. Gaidīšanas metode sinhronizācijas laikā atbrīvo bloķēšanu.
Izpildes metode
Miega metode tiek izpildīta pašreizējā pavedienā. Objektā tiek izsaukta gaidīšanas metode.
 Saistītā klase
Miega režīms ir Thread klases metode. Gaidīšana ir objekta klases metode.
Pabeigšana
Miega process tiek pabeigts pēc noteiktā laika beigām. Gaidīšanas metode tiek pārtraukta, piezvanot uz paziņot vai paziņot visiem veidiem.

Kopsavilkums - gulēt vs gaidīt Java

Operētājsistēmā darbojas vairāki procesi. Katrā procesā var būt vairāki pavedieni. Vītne ir mazākā apstrādes vienība operētājsistēmā. Java programmēšanas valoda atbalsta vairāku pavedienu izveidi. Tas ļauj vienlaikus vadīt vairākus pavedienus. Miega režīms un gaidīšana ir divas metodes, kuras var izmantot, veicot vairāku pavedienu ieviešanu. Atšķirība starp miegu un gaidīšanu Java ir tāda, ka miegu izmanto, lai apturētu pašreizējā pavediena izpildi noteiktam milisekundžu skaitam, kamēr tiek izmantota gaidīšanas metode, lai pašreizējais pavediens gaidītu, kamēr cits pavediens izsauc paziņojumu vai informēt visu. objekta metode.

Atsauce:

1. “Starppavedienu komunikācija Java - Javatpoint.”. JavaTPoint. Pieejams šeit
2. Starpvītne Komunikācija Java daudzkārtnē Core Java apmācība | Studiju gaisma. Pieejams šeit