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:

  1. Egy új hívásveremben szál kerül létrehozásra.
  2. A szál megváltoztatja az állapotát Új-ról Futtatható-ra.
  3. 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 -

  1. Adatszerkezet Java interjúkérdések
  2. Hoppá a Java interjú kérdései
  3. Többszálú interjúkérdések a Java-ban
  4. Java tesztelési interjúkérdések