Skirtumas tarp miego ir laukimo „Java“

Pagrindinis skirtumas - miegas ir laukimas „Java“
 

Miegas ir laukimas yra du metodai, naudojami daugybėje „Java“. Miego metodas priklauso temų klasei, o laukimo metodas priklauso klasei „Objektas“. pagrindinis skirtumas tarp miego ir laukimo Java yra tai, kad „Miegas“ naudojamas sustabdyti esamo sriegio vykdymą nurodytam milisekundžių skaičiui, o laukimo metodas yra naudojamas, kad dabartinė gija lauktų, kol kita gija iškviečia objekto pranešimo arba pranešimo metodą..

Gija yra mažiausias apdorojimo vienetas operacinėje sistemoje. Tai yra vienas iš eilės valdymo srautas programoje. Siūlai yra lengvi. Daugiasluoksnis yra kelių gijų paleidimo vienu metu mechanizmas. Programavimo kalbos, tokios kaip „Java“, palaiko daugialypį rašymą. Daugybinis sriegimas turi pranašumų, nes leidžia vienu metu paleisti kelis siūlus, o sriegiai yra vienas nuo kito nepriklausomi. „Java“ yra metodų, kurie gali būti naudojami daugiasriegiui. Du iš jų miegoti ir laukti.

TURINYS

1. Apžvalga ir svarbiausias skirtumas
2. Kas yra miegas Java
3. Kas laukia „Java“
4. Miego ir laukimo „Java“ panašumai
5. Lyginimas šalia: miegas ir laukimas „Java“ lentelės forma
6. Santrauka

Kas yra miegas Java?

Operacinėje sistemoje veikia keli procesai. Procesas yra vykdoma programa. Kiekvienas procesas gali turėti keletą gijų, ir tarp šių gijų vyksta konteksto perjungimas. „Java“ yra du būdai, kaip sukurti giją. Tai yra, praplečiant siūlų klasę arba įdiegiant „Runnable“ sąsają. „Thread“ klasėje yra konstruktoriai ir metodai, skirti sukurti ir atlikti operacijas su gija. Gijų klasė išplečia objektų klasę ir įgyvendina „Runnable“ sąsają. Vykdomą sąsają turėtų įgyvendinti bet kuri klasė, kurios egzempliorius ketinama vykdyti per giją. Kai gija vykdoma, kodas, kuris turėtų būti vykdomas, įrašomas vykdymo metodo viduje. Giją, kuri turėtų būti vykdoma, pasirenka gijų planavimo priemonė. Viename procese vykdoma tik viena gija.

Siūlas eina per kelias fazes. Sukūręs „Thread“ klasės objektą, programuotojas gali panaudoti pradžios metodą. Prieš pradedant taikyti šį metodą, sakoma, kad gija yra naujoje būsenoje. Gijų planavimo priemonė pasirenka giją, kurią paleisti. Jei giją dar nepasirinko sriegų planavimo priemonė, bet jei buvo naudojamas pradžios metodas, tada gija yra paleidžiama būsena. Kai gijų planavimo priemonė pasirenka giją, kurią norite vykdyti, ji pereina į veikimo būseną. Jei gija yra gyva, bet šiuo metu netinkama paleisti, tada jos negalima paleisti arba užblokuoti. Baigęs paleidimo metodą, gija eina į nutrauktą būseną. Tai yra pagrindinės siūlų gyvavimo ciklo fazės.

Siūlo klasėje yra įvairių metodų, skirtų atlikti skirtingas užduotis. Miego metodas naudojamas norint miegoti tam tikrą laiką. Miego metodo sintaksė yra viešas tuščias miegas (ilgos milisekundės), reiškiantis „InterruptedException“. Tai lemia, kad šiuo metu vykdoma gija sustabdo vykdymą laikinai tam tikram milisekundžių skaičiui. Jei kitas gija nutraukia esamą giją, nutraukus dabartinę giją būsena pašalinama, kai išmesta ši išimtis.

01 paveikslas: „Java“ programa su miego metodu

Pagal aukščiau pateiktą programą, vykdymo metode yra kodas, kuris turėtų būti vykdomas. Pagrindinėje programoje sukuriami du „ExampleThread1“ objektai ir jiems iškviečiami pradžios metodai. Tai leis paleisti kodą paleidimo metodo viduje. Vienu metu vykdoma tik viena gija. Su gija. miegas (1000); leis pirmajai gijai nutraukti vykdymą 1000 milisekundžių. Kai siūlas miega, siūlų planavimo priemonė pasiima kitą siūlą.

Kas laukia „Java“?

Keletas gijų gali pasiekti bendro naudojimo išteklius. Tai gali sukelti netinkamą išvestį. Gijų sinchronizavimas gali būti naudojamas norint sudaryti tik vieną giją, kad būtų galima pasiekti bendro naudojimo išteklius. Priimkite tokią situaciją. Jei yra dvi gijos, tokios kaip t1 ir t2, t1 pradėkite vertybių išsaugojimą teksto faile, pavadintame „Text1.txt“. Šios vertės bus naudojamos kitam skaičiavimui, kai t1 grįš. Jei t2 prasideda prieš t1 grįžtant, t2 gali pakeisti t1 išsaugotas reikšmes. Dėl to t1 gali pateikti neteisingą išvestį. Sinchronizacijos pagalba, kai t1 pradeda naudoti failą „Text1.txt“, tą failą galima užrakinti, taigi jis prieinamas tik t1. „T2“ negali jo pakeisti, kol „t1“ neatleidžia užrakto, kad pasiektų tą tekstinį failą. Kai užduotis bus atlikta, t1 gali atlaisvinti užraktą. Užraktas taip pat žinomas kaip monitorius.

Gijų sinchronizavimas gali būti pasiektas palaikant ryšį tarp gijų. Kritinė dalis yra kodo segmentas, kuriuo galima pasiekti bendrai naudojamus išteklius. Ryšių tarp gijų metu pristabdytas sriegis, einantis į jo kritinę dalį, o kitam gijai leidžiama įeiti į tą pačią kritinę sekciją, kurią reikia vykdyti. Jis įgyvendinamas naudojant laukimo, pranešimo ir pranešimo metodus. Jie priklauso klasei „Objektas“. Laukimo metodas naudojamas norint leisti dabartiniam sriegiui atlaisvinti užraktą ir laukti, kol kitas sriegis panaudos objekto pranešimo arba pranešimo metodą. Pranešimo metodas naudojamas pažadinti vieną siūlą, kuris laukia užrakto. „Notify All“ pažadina visas gijas, kurios laukia užrakto.

02 paveikslas: Skaičiuotuvo klasė

03 paveikslas: Pagrindinis metodas

Skaičiuotuvo klasė praplečia giją. Sinchronizuotas blokas yra paleidimo metodo viduje. „For loop“ ir „pranešimo“ metodas yra sinchronizuoto bloko viduje. Pagrindiniame metode nurodomas sukurtas gijos egzempliorius ir pradžios metodas. Pagrindinis metodas lauks, kol gija pateiks pranešimą. Vykdant programą, pagrindinis metodas laukia, kol bus vykdomas visas vykdymo metodas, ir laukia pranešimo metodo. Kai iškviečiamas pranešimo metodas, pagrindinis metodas nustoja laukti ir pradeda vykdyti likusį kodą. Pagrindinis laukia, kol bus baigta skaičiuoklės gija. Galiausiai išspausdinamas sumos rezultatas.

Jei nėra sinchronizuoto bloko ir jei pagrindinis metodas turi žemiau nurodytą kodą, jis duos išvestį kaip nulį, nes nelaukia, kol baigsis kita gija..

Skaičiuotuvas t1 = naujas skaičiuotuvas ();

 t1. pradžia ();

System.out.println (t1.sum);

Koks miegas ir laukimas yra „Java“ panašumas?

  • Miegas ir laukimas yra metodai, kuriuos galima naudoti diegiant „Java“ daugialypius sriegius

Kuo miegas ir laukimas skiriasi „Java“??

miegas vs laukimas Java

Miego metodas priverčia dabartinį siūlą sustabdyti vykdymą nurodytu milisekundžių skaičiumi, atsižvelgiant į sistemos taimerių ir planuoklių tikslumą.. Laukimo metodas verčia dabartinę giją laukti, kol kita gija iškviečia objekto pranešimo ar pranešimo metodą.
 Asociacija su „Lock“
Miego būdas neatleidžia objekto užrakto sinchronizacijos metu. Laukimo metodas atleidžia užraktą sinchronizacijos metu.
Vykdymo būdas
Miego metodas vykdomas dabartine gija. Objektas vadinamas laukimo metodu.
 Susijusi klasė
Miegas yra „Thread“ klasės metodas. Laukimas yra objekto klasės metodas.
Pabaiga
Miego procesas užbaigiamas pasibaigus nurodytam laiko tarpui. Laukimo būdas nutraukiamas paskambinus pranešimo arba pranešimo metodais.

Santrauka - miegas vs laukimas „Java“

Operacinėje sistemoje veikia keli procesai. Kiekvienas procesas gali būti kelių gijų. Siūlas yra mažiausias apdorojimo vienetas operacinėje sistemoje. „Java“ programavimo kalba palaiko daugybę siūlų. Tai leidžia vienu metu paleisti kelis siūlus. Miegas ir laukimas yra du metodai, kuriuos galima naudoti įgyvendinant daugiasriegius. Skirtumas tarp miego ir laukimo „Java“ yra tas, kad miegas yra naudojamas sustabdyti esamos gijos vykdymą nurodytu milisekundžių skaičiumi, o laukimo metodas yra naudojamas, kad dabartinė gija turėtų laukti, kol kita gija iškviestų pranešti arba praneštiAll. objekto metodas.

Nuoroda:

1. „Tarpasriegis bendravimas„ Java “-„ Javatpoint “.“. „JavaTPoint“. Galima rasti čia
2. Tarpinis siūlas Bendravimas „Java“ daugiasluoksnyje Pagrindinė „Java“ mokymo programa | Studijų naktis. Galima rasti čia