Különbség az alvás és a várakozás között a Java-ban

Fő különbség - alvás vs várás Jáva
 

Az alvás és a várakozás kétféle módszer a Java szálak többszálú használatához. Az alvásmód a szál osztályba tartozik, míg a várakozási módszer az Objektum osztályba tartozik. Az kulcs különbség az alvás és a várakozás között a Java-ban az a Az alvás az aktuális szál végrehajtásának felfüggesztésére szolgál a megadott számú milliszekundumban, míg a várakozási módszer arra készteti az aktuális szálat, hogy várjon, amíg egy másik szál meghívja az értesítés vagy az értesítés összes módszerét az objektumhoz.

A szál a legkisebb feldolgozási egység az operációs rendszerben. Ez a program egy szekvenciális irányítási folyamata. A szálak könnyűek. A többszálú szálak több szál egyidejű futtatásának mechanizmusai. A programozási nyelvek, például a Java támogatja a többszálú szálat. A többszálú szálaknak vannak előnyei, mivel lehetővé teszi több szál egyidejű futtatását, és a szálak függetlenek egymástól. A Java-ban vannak olyan módszerek, amelyek felhasználhatók a többszálú szálak készítéséhez. Kettőjük alszik és vár.

TARTALOMJEGYZÉK

1. Áttekintés és a legfontosabb különbség
2. Mi az alvás a Java-ban?
3. Mi vár a Java-ban?
4. hasonlóságok az alvás és a várakozás között a Java-ban
5. Összehasonlítás - alvás és várakozás a Java táblázatos formában
6. Összegzés

Mi az alvás a Java-ban??

Az operációs rendszerben több folyamat fut. A folyamat végrehajtás alatt álló program. Mindegyik folyamatnak lehet több szála, és ezen szálak között történik egy kontextusváltás. A Java-ban szálat lehet létrehozni kétféle módon. Vagyis a szál osztály kibővítésével vagy a Runnable felület megvalósításával. A szál osztály konstruktorokkal és módszerekkel rendelkezik a szálon végzett műveletek létrehozásához és végrehajtásához. A szál osztály kibővíti az Object osztályt, és megvalósítja a Runnable felületet. A futtatható felületet minden olyan osztálynak végre kell hajtania, amelynek példányait szálak által végrehajtják. Amikor a szál végrehajtódik, a végrehajtandó kódot a futtatási módszerbe írják be. A futtatni kívánt szálat a szálak ütemezője választja ki. Csak egy szál fut egy folyamatban.

Egy szál több fázison megy keresztül. A szál osztály objektumának létrehozása után a programozó meghívhatja az indítási módszert. Mielőtt meghívná ezt a módszert, azt állítják, hogy a szál új állapotban van. A szálütemező kiválasztja a futtatni kívánt szálat. Ha a szálat még nem választotta ki a szálak ütemezője, de ha az indítási módra hivatkoznak, akkor a szál futtatható állapotban van. Miután a szálak ütemezője kiválasztja a végrehajtandó szálat, az átvált futási állapotba. Ha a szál él, de jelenleg nem futtatható, akkor nem futtatható vagy blokkolt állapotban van. A futtatási módszer befejezése után a szál visszavált állapotba kerül. Ezek a fonalak életciklusának fő fázisai.

A szálosztályban különféle módszerek állnak rendelkezésre a különböző feladatok végrehajtására. Az alvási módszert arra használják, hogy a módszert egy meghatározott ideig aludják. Az alvásmód szintaxisa a nyilvános void alvás (hosszú milliszekundum), amely InterruptedException-t eredményez. Megadja, hogy az aktuálisan végrehajtott szál ideiglenesen leállítsa a végrehajtást egy meghatározott számú milliszekundumra. Ha egy másik szál megszakítja az aktuális szálat, akkor az aktuális szál megszakított állapota törlődik, amikor ezt a kivételt dobják.

01. ábra: Java program alvásmóddal

A fenti program szerint a futási módszer kódot tartalmaz, amelyet végre kell hajtani. A főprogramban létrehozzák a példaThread1 két objektumát, és rájuk hívják az indítási módszereket. Ez lehetővé teszi a kód futtatását a futtatás módszerén belül. Egyszerre csak egy szál futtatható. A szál. alvás (1000); lehetővé teszi az első szál számára, hogy megszüntesse a végrehajtást 1000 milliszekundum alatt. Amikor egy szál alszik, a szál ütemező felveszi a másik szálat.

Mi vár a Java-ban?

Több szál hozzáférhet egy megosztott erőforráshoz. Ez hibás kimenetet eredményezhet. A szinkronizálás csak egy szál létrehozására használható a megosztott erőforrás eléréséhez. Tegyük fel a következő helyzetet. Ha két szála van, mint t1 és t2, akkor a t1 elkezdi az értékek mentését a Text1.txt nevû szövegfájlba. Ezeket az értékeket más számításokhoz fogják használni, amikor a t1 visszatér. Ha a t2 elindul, mielőtt a t1 visszatérne, a t2 megváltoztathatja a t1 által mentett értékeket. Ez azt okozhatja, hogy a t1 helytelen kimenetet szolgáltat. A szinkronizálás segítségével, amikor a t1 elkezdi használni a Text1.txt fájlt, akkor a fájl lezárható, tehát csak a t1 számára érhető el. A t2 addig nem tudja megváltoztatni, amíg a t1 elengedi a lezárt szövegrész eléréséhez. A feladat befejezése után a t1 elengedheti a zárat. A zár monitorként is ismert.

A szálak szinkronizálása szálak közötti kommunikációval érhető el. A kritikus szakasz egy kódrészlet, amely hozzáfér a megosztott erőforrásokhoz. A szálak közötti kommunikáció során a szálat szüneteltetik annak kritikus szakaszában futtatásakor, és egy másik szál beléphet ugyanabba a végrehajtandó kritikus szakaszba. Várakozási, értesítési és értesítési módszerekkel valósul meg. Az Object osztályba tartoznak. A várakozási módszert arra használják, hogy az aktuális szál elengedje a zárolást, és várjon, amíg egy másik szál meghívja az objektum értesítési vagy értesítési módját. Az értesítési módszer egy olyan szál felébresztésére szolgál, amely a zárolásra vár. Az értesítAll minden szálat felébreszt, amely a záron vár.

02 ábra: Számológép osztály

03. ábra: Fő módszer

A Számológép osztály kibővíti a szálat. A szinkronizált blokk a futtatás módszerén belül van. A for hurok és értesítési módszer a szinkronizált blokkban található. A fő módszeren belül egy létrehozott szál példányát és az indítási módszert hívják arra a példányra. A fő módszer addig vár, amíg a szálat értesítik. A program végrehajtásakor a fő módszer a futási módszer teljes végrehajtásáig vár, és várja az értesítési módszert. Miután meghívta az értesítési módszert, a fő módszer leáll és nem vár, és megkezdi a kód többi részének végrehajtását. Main vár, amíg a Számológép szál be nem fejeződik. Végül kinyomtatják az összeg eredményét.

Ha nincs szinkronizált blokk, és ha a fő módszer rendelkezik az alábbiak szerint megadott kóddal, akkor a kimenet nulla lesz, mert nem várja meg, hogy a másik szál befejeződjön.

T1 számológép = új számológép ();

 t1. Rajt ();

System.out.println (t1.sum);

Mi a hasonlóság az alvás és a várakozás között a Java-ban??

  • Az alvás és a várakozás egyaránt olyan módszerek, amelyek felhasználhatók a multithreading Java alkalmazásban történő végrehajtására

Mi a különbség az alvás és a várakozás között a Java-ban?

aludni vs várni Java-ban

Az alvásmód miatt az aktuális szál a megadott számú milliszekundumban felfüggeszti a végrehajtást, a rendszeridőzítők és ütemezők pontosságának és pontosságának függvényében. A várakozási módszer arra készteti az aktuális szálat, hogy megvárja, amíg egy másik szál meghívja az értesítés vagy az értesítés összes módszerét az objektumhoz.
 Társulás Lock-szal
Az alvásmód nem szünteti meg az objektum zárolását a szinkronizálás során. A várakozási módszer feloldja a zárolást a szinkronizálás során.
A végrehajtás módja
Az alvásmódot az aktuális szálon hajtják végre. Az objektumon meghívják a várakozási módszert.
 Társult osztály
Az alvás a Thread osztály egyik módszere. A várakozás az Object osztály egyik módszere.
befejezés
Az alvási folyamat a megadott idő letelte után befejeződik. A várakozási mód megszakad az értesítési vagy az értesítési módszerek meghívásával.

összefoglalás - aludni vs várni Jáva

Az operációs rendszeren több folyamat fut. Minden folyamatnak lehet több szála. A szál a legkisebb feldolgozási egység az operációs rendszerben. A Java programozási nyelv támogatja a többszálúságot. Ez lehetővé teszi több szál futtatását egyszerre. Az alvás és a várakozás két módszer, amelyek felhasználhatók a többszálú végrehajtás során. A Java-ban az alvás és a várakozás közötti különbség az, hogy az alvást az aktuális szál végrehajtásának felfüggesztésére használják a megadott számú milliszekundumra, míg a várakozási módszert arra használják, hogy az aktuális szál várjon, amíg egy másik szál meghívja az értesítést vagy az értesítést. módszer az objektumra.

Referencia:

1. “Szálak közötti kommunikáció Java-ban - Javatpoint.”. JavaTPoint. Itt érhető el
2. Inter szál Kommunikáció a Java szálakban Alapvető Java bemutató | Studytonight. Itt érhető el