Bevezetés a Java többszálú interjúkérdésekbe és -válaszokba

A Java manapság független platformjának köszönhetően virágzik. Bárhol futtatható, ezért széles körben alkalmazzák a különféle közelgő technológiákkal. Ahhoz, hogy felkészüljenek rá, a többszálú menetrend olyan fontos téma, amely az interjúkra összpontosít. Tehát végre megtalálta álmai munkáját a Java többszálú átvitel során, de azon gondolkodik, hogyan állíthatja le az interjút, és mi lehet a valószínűsíthető Java többszálú Interjú kérdések. Minden interjú különbözik, és a munkaköre is eltérő. Vizsgáljuk meg néhány fontos, a Java többszálú interjúval kapcsolatos kérdést, amelyeket feltehetünk a Java többszálú interjúk során.

Az alábbiakban a top Java többszálú interjúkérdések és válaszok találhatók

1. Mi a Thread a JAVA-ban, és hogyan valósítja meg?

Válasz:
A szál segít megkönnyíteni a többfeladatot és a többszörös feldolgozást egy programon belül. Hatékonyan használja a CPU-t, és javítja az alkalmazás teljesítményét. A Java lehetővé teszi a felhasználó számára, hogy egyszerre több szálat használjon. Más programokkal párhuzamosan futhat, bármilyen megszakítás nélkül. Ez segít csökkenteni a folyamathoz szükséges időt. Például, ha egy program 60 másodpercig tart a végrehajtáshoz, akkor 6 szálat használhatunk, amelyek 10 másodperc alatt adják meg az eredményt.

A Java kétféle módon biztosíthatja a szálat a programban. A java.lang.Runnable felületnek van egy java.lang.példánya szál, amely egy példányon keresztüli végrehajtást igényel. A szál osztály már megvalósítja a Runnable-t, így a felhasználó közvetlenül felülbírálhatja a run () metódust a szál osztály kibővítésével vagy a Runnable felület megvalósításával.

2.A Runnable és mikor kell a Thread Java használatához?

Válasz:
A Java nem támogatja az osztály több öröklését, de lehetővé teszi több interfész egyszerre történő megvalósítását. Ezért jobb lesz a Runnable megvalósítása, mint a Thread osztály kibővítése.

3. Hogyan különbözteti meg a szálat és a folyamatot?

Válasz:
A szál egy folyamat részhalmaza. Egy folyamatban több szál futhat. A szálak a folyamat bármely részét futtathatják. A folyamatnak saját címe van, ahol tárolja, míg a szál megosztja a folyamatot létrehozó folyamat címét. A folyamat létrehozása hektikus folyamat, míg a szálak könnyen létrehozhatók. A szálat általában könnyű eljárásnak nevezik. A folyamatok közötti kommunikáció nehéz, míg a szálak könnyen kommunikálhatnak a Java várakozási () és értesítési () módszerekkel. A folyamatok függetlenek, ezért a folyamatok bármilyen módosítása nem érinti a gyermekfolyamatokat. Éppen ellenkezőleg: ha egy szálban változtatnak, akkor lehetősége van arra, hogy más szálakat érintse.

4. Miért mondják, hogy a szál viselkedése kiszámíthatatlan?

Válasz:
Ennek oka a szálak ütemezője, amely kezeli a szálak végrehajtását. Az ütemező eltérő teljesítményű lehet a különböző platformon, Windows, UNIX, LINUX, stb. Ugyanazon szál végrehajtásakor különböző kimeneteket eredményezhet különböző platformokon, és néha ugyanazon a platformon. Ennek megoldására a felhasználó létrehozhat ugyanazt a futtatható objektumot, létrehozhat futási () hurkokat mindkét szálat, és elindíthatja mindkét szálat együtt. Ideális esetben az ütemezőnek mindkét szálat össze kell választania, és a teljesítményt nem befolyásolja, de mindkét szál névtelenül lép be a hurkokba.

5. Mi a volatilis változó a Java-ban és mi a jelentősége?

Válasz:
A Java megkönnyíti a felhasználót, hogy megosszák a különböző szálakban jelen lévő változókat. Az illékony változó speciális módosítóként működik, amelyet csak például a változókat lehet használni. Mivel ez a változó meg van osztva, következetes változások történnek vele. A szálnak biztosítania kell, hogy kizárólagos hozzáféréssel rendelkezik ezekhez a változókhoz, és a zárolás kénytelen a megosztott változók kölcsönös kizárására. Biztosítja, hogy az írás minden következõ olvasás elõtt megtörténjen. A Java memória modell biztosítja ennek a változónak a konzisztenciáját. Az illékony módszerek nem lehetnek ott, mivel csak változók formájában használhatók.

6. Mi a szinkronizált kulcsszó használata? Mi a különbség a szinkronizált és az ingatag kulcsszavak között?

Válasz:
A szinkronizált kulcsszó akkor használatos, ha a cél az, hogy egyszerre csak egy szálat futtasson a kód megfelelő szakaszában. Használható négyféle különböző blokk bemutatására, az alábbiak szerint:

1) Példány módszerek
2) Statikus módszerek
3) Kódblokkok a példány módszereken belül
4) Kódblokkok statikus módszereken belül

Ez a következőképpen deklarálható:

Nyilvános szinkronizált érvénytelen példa () ()

Az illékony és a szinkronizált kulcsszó közötti különbség az, hogy a szinkronizált változóval és módszerekkel használható, míg az illékony nem használható módszerekkel. Az illékony változókat nem tárolja a gyorsítótár memóriájában, a szinkronizált változókat a gyorsítótár memóriájában tárolja. Az illékony változó soha nem kerül holtpontba, mivel nincs szükség zárra. Szinkronizált változók esetén, ha nem hajtják végre őket megfelelően, akkor ez holtpontba kerülhet.

7. Miért vannak olyan objektumok, mint a szál osztály, például a várakozás (), az értesítés (és az értesítés) és az (

Válasz:
Az objektumosztályon vannak olyan monitorok, amelyek lehetővé teszik, hogy a szál lezárja az objektumot, míg a szálnak nincs monitorja. Ha a fenti módszerek valamelyikét nevezik, akkor vár egy másik szálra, amely elengedi az objektumot, és értesíti a monitort az értesítés () vagy az összes értesítése () értesítésével. Amikor az értesítés () metódust hívják, akkor az értesíti az összes szálat, amelyek az objektum kiadására várnak. Az objektumosztály monitorja ellenőrzi az objektumot, elérhető-e vagy sem. Az ezekkel a módszerekkel rendelkező szálosztály nem segítene, mivel több szál létezik egy objektumon, és nem fordítva.

8. Magyarázza el az alvás () és a várakozás () módszerek közötti különbséget.

Válasz:
1) az alvás () módszert szálakra hívják, nem pedig tárgyakra. Objektumokon a Wait () metódust hívják.
2) Ha meghívják a várni () módszert, akkor a monitor a szálat futtatja a várakozási állapotba. Ha egy szál vár (), akkor csak akkor futhat futtathatóvá, ha értesíti () vagy értesíti () az objektumról. Az ütemező ezt követően megváltoztatja az állapotot. Alvás közben () az állapot megváltozik, hogy várjon, és csak akkor vált vissza futtathatóvá, amikor az alvási idő lejár.
3) A Wait () módszer a java.lang.Object osztály része, míg az alvás () a java.lang.Thread osztály része.
4) A Wait () funkciót mindig szinkronizált blokkkal használják, mivel ehhez objektum zárolására van szükség, míg alváshoz () kívülről lehet szinkronizált blokkból használni.

9. Hogyan kényszeríthetem meg egy szál indítását a Java-ban?

Válasz:
A Java-ban a többszálú nem erőltetheti egy szál elindítását. Csak a szálak ütemezője vezérelheti a szálakat, és nem vannak kitéve egyetlen ellenőrzési API-nak.

10. Ha a szál elhagyja az objektum zárolását, amikor a várakozás () és az alvás () módszereket hívják?

Válasz:
Amikor egy szál alszik () módszerrel nem hagyja lezárást, és várakozási állapotba kerül. A szál arra vár, hogy az alvási idő átkerüljön. Amikor a wait () metódust használják, a szál elhagyja az objektumot és várakozási állapotba kerül. Ha az értesítést () meghívják, akkor ismét futó állapotba kerül, és megszerezte a zárolást.

Ajánlott cikk

Ez egy útmutató a Java többszálú interjúkérdések és válaszok listájához, így a jelölt könnyen meg tudja oldani ezeket a Java többszálú interjúkérdéseket. A következő cikkeket is megnézheti további információkért -

  1. Java fejlesztői interjúkérdések - Hogyan lehet feltörni a 7 legfontosabb kérdést
  2. Átfogó útmutató a Java alkalmazásfejlesztéshez (Félelmetes elmélet)
  3. Maven interjúkérdések és válaszok Top és a legtöbb kérdés
  4. 10 fejlett AngularJS interjú kérdés a tapasztalt személyek számára