Galvenā atšķirība - miegs vs gaidīšana Java
Miega režīms un gaidīšana ir divas metodes, kas tiek izmantotas Java daudzsavienojumam. Miega metode pieder Thread klasei, kamēr gaidīšanas metode ir no Object klases. Galvenā atšķirība starp miega un gaidīšanas režīmu Java ir tāda, ka miega režīms tiek izmantots, lai apturētu pašreizējā pavediena izpildi norādītajam milisekundu skaitam, savukārt gaidīšanas metode tiek izmantota, lai pašreizējais pavediens gaidītu, kamēr cits pavediens izsauc paziņojumu vai paziņot visu objekta metodi.
Vītne ir mazākā apstrādes vienība operētājsistēmā. Tā ir viena secīga vadības plūsma programmas ietvaros. Vītnes ir vieglas. Vairāku pavedienu darbība ir vairāku pavedienu vienlaicīga palaišana. Programmēšanas valodas, piemēram, Java, atbalsta daudzsavienojumu. Daudzlīniju pavedieniem ir priekšrocības, jo tas ļauj vienlaikus vadīt vairākus pavedienus un pavedieni ir neatkarīgi viens no otra. Java ir metodes, kuras var izmantot daudzsavienošanai. Divas no tām guļ un gaida.
SATURS
1. Pārskats un atslēgu atšķirība
2. Kas ir miega režīms Java
3. Kas ir Java gaidīšana
4. Līdzības starp miegu un gaidīšanu Java
5. Blakus salīdzinājums - miega vs gaidīšanas Java tabulas veidā
6. Kopsavilkums
Kas ir miegs Java?
Operētājsistēmā darbojas vairāki procesi. Process ir programma, kas tiek izpildīta. Katram procesam 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 interfeisu. Vītnes klasei ir konstruktori un metodes, kā izveidot un veikt operācijas ar pavedienu. Vītnes klase paplašina objektu klasi un ievieš Runnable saskarni. Runnable saskarne būtu jāievieš jebkurai klasei, kuras gadījumus paredzēts izpildīt ar pavedienu. Kad pavediens tiek izpildīts, izpildes metodē tiek ierakstīts kods, kas jāizpilda. Vītni, kurai vajadzētu darboties, izvēlas pavedienu plānotājs. Vienā procesā darbojas tikai viena pavediens.
Vītne iet cauri vairākām fāzēm. Pēc Thread klases objekta izveides programmētājs var izmantot sākuma metodi. Pirms šīs metodes izmantošanas tiek uzskatīts, ka pavediens ir jaunajā stāvoklī. Vītņu plānotājs izvēlas palaist pavedienu. Ja pavedienu plānotājs vēl nav izvēlējies pavedienu, bet, ja tiek izmantota sākuma metode, pavediens ir palaistā stāvoklī. Pēc tam, kad pavedienu plānotājs ir izvēlējies izpildāmo pavedienu, tas pāriet uz darbības stāvokli. Ja pavediens ir dzīvs, bet pašlaik nav piemērots darbībai, tas nav palaižams vai bloķēts. Pēc palaišanas metodes pabeigšanas pavediens nonāk pārtrauktajā stāvoklī. Tie ir pavediena dzīves cikla galvenie posmi.
Vītņu klasē ir pieejamas dažādas metodes dažādu uzdevumu veikšanai. Miega metodi izmanto, lai miega metodi noteiktu laiku. Miega metodes sintakse ir publiska tukšuma miegs (ilgas milisekundes), kas rada InterruptedException. Tas liek izpildāmajam pavedienam īslaicīgi apturēt izpildi uz noteiktu milisekunžu skaitu. Ja cits pavediens pārtrauc pašreizējo pavedienu, pašreizējā pavediena pārtrauktais statuss tiek dzēsts, kad tiek izmests šis izņēmums.
01. attēls: Java programma ar miega metodi
Saskaņā ar iepriekš minēto programmu palaišanas metode satur kodu, kas jāizpilda. Galvenajā programmā tiek izveidoti divi ExampleThread1 objekti, un uz tiem tiek izsauktas sākuma metodes. Tas ļaus palaist kodu palaišanas metodē. Vienlaicīgi tiek izpildīts tikai viens pavediens. Ar diegu. gulēt (1000); ļaus pirmajam pavedienam pārtraukt izpildi par 1000 milisekundēm. Kad pavediens guļ, pavedienu plānotājs uzņem otru pavedienu.
Kas ir gaidīšana Java?
Vairāki pavedieni var piekļūt koplietotam resursam. Tas var izraisīt nepareizu izvadi. Vītņu sinhronizāciju var izmantot, lai izveidotu tikai vienu pavedienu, lai piekļūtu koplietotajam resursam. Pieņemiet situāciju šādi. Ja ir divas tēmas kā t1 un t2, t1 sāk vērtības saglabāt teksta failā ar nosaukumu Text1.txt. Šīs vērtības tiks izmantotas kādam citam aprēķinam, kad atgriezīsies t1. Ja t2 sākas pirms t1 atgriešanās, t2 var mainīt t1 saglabātās vērtības. Tas var izraisīt t1 nepareizu izvadi. Ar sinhronizācijas palīdzību, kad t1 sāk izmantot Text1.txt failu, šo failu var bloķēt, tāpēc tam var piekļūt tikai t1. T2 to nevar mainīt, kamēr t1 neatbrīvo slēdzeni, lai piekļūtu šim teksta failam. Kad uzdevums ir pabeigts, t1 var atbrīvot slēdzeni. Slēdzene ir pazīstama arī kā monitors.
Vītnes sinhronizāciju var panākt, sazinoties starp pavedieniem. Kritiskā sadaļa ir koda segments, kas piekļūst koplietotajiem resursiem. Starpsavienojumu komunikācijā pavediens tiek pārtraukts, darbojoties tā kritiskajā sadaļā, un tajā pašā izpildāmajā kritiskajā sadaļā ir atļauts ievadīt citu pavedienu. To īsteno, izmantojot gaidīšanas, paziņošanas un paziņošanas visas metodes. Viņi pieder Object klasei. Gaidīšanas metode tiek izmantota, lai ļautu pašreizējam pavedienam atbrīvot bloķēšanu un gaidīt, kamēr cits pavediens izsauc objekta metodi paziņot vai paziņot visiem. Paziņošanas metode tiek izmantota, lai pamodinātu vienu pavedienu, kas gaida bloķēšanu. PaziņojumsAll pamodina visus pavedienus, kas gaida uz slēdzenes.
02. attēls: Kalkulatora klase
03. attēls: galvenā metode
Kalkulatora klase paplašina pavedienu. Sinhronizētais bloks atrodas palaišanas metodes iekšpusē. Metode for cikls un paziņojums atrodas sinhronizētajā blokā. Galvenās metodes iekšienē šajā instancē tiek izsaukts izveidota pavediena gadījums un sākuma metode. Galvenā metode gaidīs, kamēr pavediens sniegs paziņojumu. Izpildot programmu, galvenā metode gaida visu izpildes metodes izpildi un gaida paziņošanas metodi. Pēc paziņošanas metodes izsaukšanas galvenā metode pārtrauc gaidīšanu un sāk izpildīt pārējo kodu. Galvenais gaida, līdz kalkulatora pavediens ir 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 izvadam piešķirs nulli, jo tas negaida, kamēr otrais pavediens būs pabeigts.
Kalkulators t1 = jauns kalkulators ();
t1. sākt ();
System.out.println (t1.sum);
Kāda ir miega un gaidīšanas līdzība Java valodā?
Gan miega režīms, gan gaidīšana ir metodes, kuras var izmantot, ieviešot Java daudzsavienojumu
Kāda ir Java atšķirība starp miegu un gaidīšanu?
Atšķirīgs raksts vidū pirms tabulas
gulēt vs gaidīt Java |
|
Miega metode liek pašreizējam pavedienam apturēt izpildi norādītajam milisekundu 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 izsauc objekta metodi paziņot vai paziņot visiem. |
Asociācija ar Lock | |
Miega metode sinhronizācijas laikā neatbrīvo objekta slēdzeni. | Gaidīšanas metode sinhronizācijas laikā atbrīvo bloķēšanu. |
Izpildes metode | |
Miega metode tiek izpildīta uz pašreizējā pavediena. | Uz objekta tiek izsaukta gaidīšanas metode. |
Asociētā klase | |
Miegs ir Thread klases metode. | Gaidīšana ir objektu klases metode. |
Pabeigšana | |
Miega process ir pabeigts pēc noteiktā laika beigām. | Gaidīšanas metode tiek pārtraukta, izsaucot paziņošanas vai paziņošanas visas metodes. |
Kopsavilkums - miegs vs gaidīšana Java
Operētājsistēmā darbojas vairāki procesi. Katram procesam var būt vairāki pavedieni. Vītne ir mazākā apstrādes vienība operētājsistēmā. Java programmēšanas valoda atbalsta daudzsavienojumu. Tas ļauj vienlaikus darbināt vairākus pavedienus. Miega režīms un gaidīšana ir divas metodes, kuras var izmantot, ieviešot vairākus pavedienus. Atšķirība starp miega režīmu un gaidīšanu Java ir tāda, ka miega režīms tiek izmantots, lai apturētu pašreizējā pavediena izpildi norādītajam milisekundu skaitam, savukārt gaidīšanas metode tiek izmantota, lai pašreizējā pavediens gaidītu, kamēr cits pavediens izsauc paziņojumu vai paziņojumu Visiem metode objektam.