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 -
- Többszálú interjúkérdések a Java-ban
- Menetvonalas interjúkérdések
- Java Servlet interjúkérdések
- QlikView interjúkérdések