Bevezetés Java interjúval kapcsolatos kérdések és válaszok a többszálúságról
Mielőtt elkezdenénk a Java-interjúval kapcsolatos kérdéseket a Multithreading-ról, beszéljünk valami a multithreading-ról szóló néhány tényről.
# 1 - Tehát előbb tudnunk kell, mi a téma?
Ez a legkisebb feldolgozási egysége, amelyet egy adott munka szálaknak hívnak. Könnyű jellegű, így könnyen használható. Most az a gondolatunk, hogy miért lenne szükségünk rá, a többszálú alkalmazást használják a multitasking megvalósításához. A multitasking más módon is megvalósítható, és multiprocessing néven ismert.
A többszálú szálak azonban népszerűbbek, és a többfolyamat-feldolgozásnál is hatékony a felhasználás, mivel a szálak tulajdonságai vannak, hogy megosztott memóriaterületet használnak, míg többfolyamatos eljárás esetén sok memóriát és egyéb erőforrást fogyaszt, ami nem hatékony.
Tehát több szál egyidejű végrehajtása néhány munka elvégzéséhez többszálú.
A többszálú használat néhány előnye:
- A szálak függetlenül működnek, tehát független a rendszerben zajló egyéb műveletektől, így lehetséges több művelet végrehajtása egyszerre.
- Az időfelhasználás kevesebb a többszálú használat esetén, mivel sok művelet elvégezhető egyszerre.
- A szálak függetlenek, amint azt már tárgyaltuk, tehát kivétel történik egyetlen szálon, amely nem zavarja a többi szál műveleteit.
- A két szál közötti kommunikáció költsége alacsony.
A multitasking feladatot a következő két módon érhetjük el:
- Folyamat-alapú multitasking (multiprocessing)
- Mentalapú multitasking (többszálú)
MEGJEGYZÉS: Amint a többszálú beszélgetésről beszélünk, ezért a szál alapú multitaskingra összpontosítunk.
A szál életciklusa:
- Új
- futtatható
- Futó
- Nem futtatható (blokkolt)
- Lezárt
MEGJEGYZÉS: Tájékoztatásul és a jobb megértés érdekében olvassa el alaposan az alábbi képet.
# 2 - Hogyan készülnek a szálak?
Most ez a legfontosabb és az első pont, amellyel létrehozhatjuk a szálat. A szálak létrehozásának kétféle módja van, amelyeket az alábbiakban tárgyalunk:
- A szál osztály kibővítésével
- A Runnable felület megvalósításával
JEGYZET:
Új szál létrehozásakor a következő feladatokat hajtják végre:
- Egy új hívásveremben szál kerül létrehozásra.
- A szál megváltoztatja az állapotát Új-ról Futtatható-ra.
- Amikor a szálat elindítják, megtalálja a run () metódust, majd végrehajtja.
PÉLDA:
By extending Thread class
class MyThread extends Thread
(
public void run()
(
System.out.println("thread is running…");
)
public static void main(String args())
(
MyThread t1=new MyThread ();
t1.start();
)
)
PÉLDA:By implementing Runnable interface
class MyThread implements Runnable
(
public void run()
(
System.out.println("thread is running…");
)
public static void main(String args())
(
MyThread m1=new MyThread ();
Thread t1 =new Thread(m1);
t1.start();
)
)
MEGJEGYZÉS: Vegye figyelembe a fenti két példa különbségét. A fenti két példa közötti fő különbség az, hogy ha nem a szálat bővítjük, hanem a futtatható felület megvalósításával próbáljuk a szálat létrehozni, és osztályozzuk a start () metódust a szála elindításához, akkor a szála nem jön létre új hívásveremben. mivel nem lesz szálként azonosítva.
Tehát ahhoz, hogy szálként azonosuljon, át kell adnunk az osztály példányát, ahol a Runnable interfészt érvként a szál osztály konstruktora számára átadtuk, majd meg kell hívnunk a start () metódust.
Ütemezés a szálban:
Mivel mindannyian tudják, hogy az ütemterv azt jelenti, hogy egy feladatot egy adott időben megtervez.
A szál ütemezése egy bizonyos szál ütemezésének hasonló mechanizmusa, amely néhány protokollt fenntart. Kétféle módon működhet a szálak ütemezése a Java-ban.
- Preventív ütemezés
- Időszeletelés.
Preventív ütemezés:
A JMV dönti el a legmagasabb prioritással bíró feladatot, és addig indítja a végrehajtást, amíg be nem lép a várakozási vagy a halott állapotba, vagy egy magasabb prioritású feladat nem létezik.
Időszeletelés:
A JVM elkezdi végrehajtani egy adott szálat egy adott időtartamra, majd mozgassa ugyanazt a szálat a készletbe, és válasszon másik szálat a végrehajtás prioritása és egyéb tényezői alapján. Ez a folyamat addig folytatódik, amíg az összes szál le nem fejezi a folyamatot.
Most, ha olyan állást keres, amely a Java multithreading-hoz kapcsolódik, akkor fel kell készülnie a 2018-as Java interjúval kapcsolatos kérdésekre a multithreading témában. Igaz, hogy az interjúk különbözőek a munkakörök szerint. Itt elkészítettük a Java-interjúval kapcsolatos fontos kérdéseket és válaszokat a többszálú szálakkal kapcsolatban, amelyek elősegítik az interjú sikerét.
Ebben a többszálú Java-interjúval kapcsolatos 2018-as cikkben a 10 legfontosabb és leggyakrabban feltett Java-interjú kérdést fogjuk bemutatni a többszálú szálakkal kapcsolatban. Ezek az interjúkérdések két részre oszlanak, a következők szerint:
1. rész - Java interjúkérdések a sokszállal (alap)
Ez az első rész a Java interjúval kapcsolatos alapvető kérdéseket és válaszokat foglalja magában a többszálú szálakkal kapcsolatban.
Q1. Különbséget tesz a folyamat és a szál között?
Válasz:
A folyamat program vagy alkalmazás, míg a szál egyetlen feladat, amelyet egy folyamaton belül kell végrehajtani. A szál könnyű, míg a folyamat nehéz. A szálak kevesebbet igényelnek, míg a folyamat több erőforrást igényel, ezért a természetük szerint súlyosan súlyozottnak nevezik.
Q2. Megkülönböztetni a felhasználói szálat és a démon szálat?
Válasz:
A Java-ban létrehozott szálat felhasználói szálnak nevezzük. A Daemon szál mindig a háttérben fut, és teljes életciklusa a fő szál függvénye. A háttérben futó démonszál nem akadályozza meg a JVM-et abban, hogy leállítsa. A démonszálból létrehozott gyermekszál szintén démonszál lesz.
Térjünk át a következő Java interjú kérdésre a sokszállal kapcsolatban.
Q3. A szálak Java létrehozásának más módja?
Válasz:
A Java szálait kétféle módon lehet létrehozni:
- A szál osztály kibővítésével.
- A futtatható felület megvalósításával.
Q4. Mi a szál életciklusa?
Válasz:
Ez az a interjú során feltett, a Multithreading-rel kapcsolatos Java-interjú kérdése. Az alábbiakban bemutatjuk a szál életciklusát:
- Új
- Futható.
- Futó.
- Zárolt.
- Szüntetni.
Q5. Mi történik, ha egy szál osztály futtatásának () metódust hívunk?
Válasz:
A run () módszer közvetlen meghívásával a program sikeresen összeáll és végrehajtódik, de ugyanazt a programot nem kezeljük, mint a szálat, mert nem hoz létre új hívásverem, és a program megkezdi a végrehajtását ugyanabban a hívásveremben, ahol a fő fut.
Az új hívásveremmel futó szál létrehozásához a Thread osztály start () módszerét kell használni.
2. rész - Java interjúkérdések a sokszállal (haladó)
Vessen egy pillantást a fejlett Java-interjúval kapcsolatos kérdésekre és válaszokra a multiszederálásról.
Q6. Meg lehet szüneteltetni egy szál végrehajtását egy adott időpontban?
Válasz:
Igen, ezt a java-ban lehet elérni a szál osztályának alvás () hívásával. Az alvás () módszer olyan argumentumot is igényel, amely milliszekundumban jelzi az időt.
Q7. Hogyan érjük el a menet ütemezését a java-ban?
Válasz:
Igen, a menet ütemezése a java-ban lehetséges. A Java szálait kétféle módon lehet ütemezni, azaz az időszeletelés és a megelőző ütemezés.
Térjünk át a következő Java interjú kérdésre a sokszállal kapcsolatban.
Q8. Indulhat-e egy szál kétszer?
Válasz:
Nem, a szálat nem lehet kétszer indítani. Ha megkíséreljük egy szálat kétszer elindítani, akkor a „java.lang.IllegalThreadStateException” üzenet jelenik meg.
Q9. Mi a leállítási kampó a Java-ban?
Válasz:
Ez a legnépszerűbb Java interjúval kapcsolatos kérdések a multiszegálással kapcsolatban, amelyet egy interjúban feltett. A leállító kampó olyan mechanizmus, amelyet a JVM normál vagy hirtelen leállításakor használnak az erőforrások megtisztításához.
Q10. Mi az illékony?
Válasz:
Az illékony kulcsszó a java-ban, és változókkal használható. Ha egy változót ingatagnak nyilvánítanak, akkor az összes szál leolvassa ugyanazon változó értékét a főmemóriából, nem pedig a gyorsítótárból, így megakadályozza a hibaolvasást, ha több szál ugyanazt a változót használja műveleteiben.
Ajánlott cikkek
Ez útmutatóként szolgál a Java interjúval kapcsolatos kérdések és válaszok listájához a multiszalaggal kapcsolatban, így a jelölt könnyen meg tudja oldani ezeket a Java interjúval kapcsolatos kérdéseket a multiszalaggal. Itt, ebben a bejegyzésben megvizsgáltuk a legfontosabb Java interjúkérdéseket a sokszállal kapcsolatban, amelyeket gyakran kérdeznek az interjúkban. A következő cikkeket is megnézheti további információkért -
- Adatszerkezet Java interjúkérdések
- Hoppá a Java interjú kérdései
- Többszálú interjúkérdések a Java-ban
- Java tesztelési interjúkérdések