A 10 legfontosabb többszálú interjúkérdés C ++ (Frissítés 2019-re)

Tartalomjegyzék:

Anonim

Bevezetés Többszálú interjúkérdések és válaszok C ++

Mielőtt belekezdenénk az interjúkkal kapcsolatos szálakba és a hozzájuk kapcsolódó fogalmakba, röviden át szeretnék mondani, hogyan működnek a dolgok, mielőtt a cikk címe, azaz a Multithreading megkezdené a szerepét. Nézzük gyorsan a részleteket

Háromféle számítógépes nyelv létezik

  • Alacsony szint (gépi szint)
  • Középszint (Összeszerelési szint) és
  • Magas szintű (például C ++, JAVA, COBOL stb.)

Ezek a magas szintű nyelvek (a mi esetünkben a C ++ -ot vesszük figyelembe) a programok használatával lépnek kölcsönhatásba a gépekkel (amelyekbe beépített kódok vannak). A fordító segíti a részletek lefordítását a gépi nyelvre (0-as és 1-es), akárcsak egy idegenvezető, amely egyik nyelvről a másikra fordítja.

Most, amikor ez az információcsere megtörténik az ember (kódokon keresztül) és egy gép között, olyan fogalmak kerülnek a képbe, mint a menet és a menet. Ezeket a részleteket kérdés és válasz útján fogjuk megvitatni a „C ++ menetes interjú kérdéseire”.

Most, ha olyan munkát keres, amely a Multithreading C ++ -hoz kapcsolódik, akkor fel kell készülnie a 2019-es Multithreads Interjúkérdésekre. Igaz, hogy az interjúk különbözőek a munkakörök szerint. Itt készítettük el a fontos, többszálú interjúkérdéseket és a C ++ válaszokat, amelyek segítenek abban, hogy sikerrel járjon az interjúban.

Ebben a 2019-es többszálú interjúkérdés C ++ cikkben bemutatjuk a 10 legfontosabb és leggyakrabban feltett C ++ interjúkérdés kérdését. Ezek az interjúkérdések két részre oszlanak, a következők szerint:

1. rész - Többszálas interjúkérdések C ++ (alapvető)

Ez az első rész a C ++ többszálú interjúkérdésekre vonatkozik.

Q1. Mi a többszálú?

Válasz:
A szál egy végrehajtási sorozat; az operációs rendszer (operációs rendszer) jellemzőjére is hivatkozhat.
Megértjük a fenti mondatot egyszerűbben.
A felhasználó által a rendszeren végrehajtott bármely művelethez meg kell valósítani egy folyamatot a művelet végrehajtásához (a felhasználó kérése szerint). Minden folyamathoz legalább egy szálat kell társítani. Az összes rendszerbe beépített operációs rendszer felelős azért, hogy minden szálra elosztja a folyamatidőt. Tehát a Multithreading a multitasking speciálisabb módja. Ez a viselkedés lehetővé teszi a felhasználó számára, hogy több feladatot egyszerre végezzen.

Q2. Gyere fel minden olyan részlettel, amelyet tudsz a folyamatról?

Válasz:
Lássuk, mi az a folyamat pontosan, A úr bejelentkezik a rendszerbe, és meg akarja nézni vállalkozásának irányítópultját. Annak érdekében, hogy megnézhesse üzleti irányítópultját a rendszeren, navigál az irányítópult szakaszába. Ennek során előállít egy folyamatot, amelyet a megfelelő rendszer operációs rendszer kezel. Az operációs rendszer a memóriát fogja kiosztani a folyamathoz, és az operációs rendszer gondoskodik arról is, hogy az egyik folyamat memóriája más folyamatokhoz ne férhessen hozzá.

Ezért azt mondhatjuk, hogy egy folyamat nem más, mint végrehajtás alatt álló program.

A folyamat elrendezése (komponensei) -

A folyamatnak különböző szakaszai vannak, amelyeket folyamat életciklusának is nevezhetünk -

  • Rajt
  • Kész
  • Futó
  • Várakozás
  • Felmondás vagy kilépés

Térjünk át a következő többszálú interjúkérdésekre, a C ++ kérdésre.

Q3. Jelölje ki a szál egyes előnyeit annak típusaival kapcsolatban?

Válasz:
Általában kétféle szál van

  • UI-szál - ezeket UI-összetevők létrehozására használják. Például. Az üzenőmező megjelenik, hogy bármilyen információ megjelenjen a felhasználó számára.
  • Munkavállaló szál - üzenetszivattyú nincs benne

Előnyök -

  • Minimalizálja a kontextusváltási időt
  • Fokozza a kommunikációt
  • Könnyen létrehozható és csatlakoztatható a szálak
  • A szálak használata a folyamatot párhuzamosabbá teszi

Q4. Miért van szükség egynél több szálra?

Válasz:
Ez a C ++ interjúk során feltett gyakori, többszálú interjúkérdések. Mint tudjuk, hogy minden folyamathoz legalább egy szálnak társulnia kell. További szálak egyetlen folyamatra való beszédének több előnye van.

  • UI felület - Első és legfontosabb ok, hogy nagy felhasználói felülettel rendelkezzen, nagy felhasználói élménnyel. A többszálú koncepció segít abban.
  • Többfeladatosság - ha több szál van, akkor több dolgot is megtehet egyszerre.
  • Használhatóság - A rendszer különböző összetevői különböző összetevőket használhatnak egy adott időpontban. Itt a többszálú menetmegtakarítás lehet.

Q5. Hogyan lehet szálat létrehozni a C ++ programban?

Válasz:
Ennek négy módja van, amelyek a következők:

  • Szálak létrehozása a függvénymutató segítségével
  • Szálak létrehozása a függvényobjektum segítségével
  • A szálak létrehozása a lambda segítségével
  • A szálak létrehozása a tag függvény segítségével

Q6. Hogyan indítsunk el egy szálat funkcióobjektumok és függvénymutató segítségével?

Válasz:
Funkcióobjektum használata -

class fn_object_class (
void operator () (params)
(
)
Std:: thread thread_object(fn_class_object(), params)

Funkciómutató használata -

Void foo(param)
(
)
std::thread thread_obj (foo, params);

Q7. Milyen problémát talál ebben a kódban?

Válasz:
A kódot a jelölt kapja meg -

#include
int main(int argc, char **argv)
(
const int & r1 = 100;
int v = 200;
int &r2 = v;
int & r3 = 200;
return 0;
)

Az értéknek változónak kell lennie. A kérdés az r3 inicializálásában van.

2. rész - Többszálas interjúkérdések C ++ (haladó)

Vessen egy pillantást a fejlett, többszálú interjúval kapcsolatos kérdésekre és válaszokra, a C ++ kérdésre.

Q8. Röviden tájékozódjon a Multithreading programban elérhető modellekről?

Válasz:
Sok-sok kapcsolat

Sok az egyhez viszony

Egy az egyhez viszony

Q9. Nevezze meg a szál tervezési mintáját?

Válasz:
Néhány népszerű teszt eset a jelenlegi IT-iparban
Menet medence (Boos and Worker)

Peer (Munkacsoport)

Csővezeték

Térjünk át a következő többszálú interjúkérdésekre, a C ++ kérdésre.

Q10. Határozza meg az elfoglalt várakozást és hogyan lehet ezt elkerülni?

Válasz:
Ha egy szál aktív hurkolószerkezet használatával újabb szálra vár, akkor az, ami nem csinál semmit, elfoglalt várakozási állapotnak nevezik. Ez a nád elkerülte a mutexek használatát.

Q11. Mit ért a prioritási inverziós terminológia?

Válasz:
Egy magasabb prioritású szálnak várakoznia kell egy alacsonyabb prioritású szál mögött abban az esetben, ha az alacsonyabb prioritású szálak olyan zárat tartanak, amelyen a magasabb prioritású szál vár. Ez a prioritás-inverzió esete.

Q12. Van-e különbség a felhasználói és a kernel szintű szálak között?

Válasz:
Ez a legnépszerűbb többszálú interjúkérdések, amelyeket egy interjúban feltett C ++. Igen, vannak kettő között kritikus különbségek. Ezek felsorolása az alábbiakban található.

Felhasználói szint Kernel szint
Ezek gyorsan cselekednek és alkotnak Ezek lassan működnek és alkotnak
Ezek nem kötődnek semmilyen operációs rendszerhez Ezek operációs rendszerre vonatkoznak
A megvalósítás felhasználói szinten zajlik A megvalósítás kernelszinten zajlik.

Q13. Nevezze meg a szálak létrehozásához használt funkciókat?

Válasz:
Az afxbeginthread függvényt használjuk a szálak (mindkettő) létrehozásához. A szálak létrehozása két módban történik - az egyik, amely megkezdi a végrehajtását, és egy, amely a felfüggesztett módban készül, amelyet később folytathat.

Q14. Melyek a 6 szinkronizálás primitívjei a Multithreading programban?

Válasz:
Ezek a következők -

  • mutex
  • Csatlakozik
  • Állapot változó
  • akadályok
  • Spin Lock
  • Szemafor

Ajánlott cikkek

Ez útmutatóként szolgál a többszálú interjúkérdések és a C ++ válaszok listájához, így a jelölt könnyen meg tudja oldani ezeket a többszálú interjúkérdések kérdéseit a C ++ segítségével. Itt, ebben a bejegyzésben megvizsgáltuk a C ++ többszálú interjúkérdések legfontosabb kérdéseit, amelyeket gyakran kérnek az interjúkban. A következő cikkeket is megnézheti további információkért -

  1. Többszálú interjúkérdések a Java-ban
  2. Menetvonalas interjúkérdések
  3. Java Servlet interjúkérdések
  4. QlikView interjúkérdések