Einführung Fragen und Antworten zum Multithreading-Interview C ++
Bevor wir uns mit dem Thema Threading und verwandten Konzepten in Bezug auf Interviews befassen, möchte ich kurz erläutern, wie die Dinge funktionieren, bevor der Titel des Artikels, dh Multithreading, seine Rolle zu spielen beginnt. Lassen Sie uns die Details schnell sehen
Es gibt drei Arten von Computersprachen
- Niedriger Stand (Maschinenstand)
- Mittlere Ebene (Baugruppenebene) und
- High Level (wie C ++, JAVA, COBOL usw.)
Diese Hochsprachen (in unserem Fall C ++) interagieren mit den Maschinen unter Verwendung von Programmen (die Codes enthalten). Ein Übersetzer hilft dabei, die Details in die Maschinensprache (0 und 1) zu übersetzen, genau wie ein Reiseleiter, der eine Sprache in eine andere übersetzt.
Sobald dieser Informationsaustausch zwischen Mensch (über Codes) und Maschine stattfindet, kommen Konzepte wie Threading und Prozess ins Spiel. Diese Details werden wir per Frage und Antwort für "C ++ - Threading-Interview-Fragen" besprechen.
Wenn Sie nun nach einem Job suchen, der mit Multithreading C ++ zusammenhängt, müssen Sie sich auf die Multithreading-Interview-Fragen C ++ für 2019 vorbereiten. Es ist wahr, dass jedes Interview anders ist, je nach den verschiedenen Berufsprofilen. Hier haben wir die wichtigen Multithreading-Interview-Fragen und -Antworten für C ++ vorbereitet, die Ihnen helfen, Ihr Interview erfolgreich zu gestalten.
In diesem C ++ - Artikel zu Multithreading-Interviewfragen aus dem Jahr 2019 werden die 10 wichtigsten und am häufigsten gestellten Fragen zu Multithreading-Interviewen in C ++ vorgestellt. Diese Interviewfragen gliedern sich in zwei Teile:
Teil 1 - Fragen zu Multithreading-Interviews C ++ (Basic)
Dieser erste Teil behandelt grundlegende Fragen zum Multithreading-Interview in C ++.
Q1. Was ist Multithreading?
Antworten:
Der Thread ist eine Ausführungssequenz. Es kann auch als eine Funktion des Betriebssystems bezeichnet werden.
Lassen Sie uns den obigen Satz auf einfachere Weise verstehen.
Für jede Aktion, die ein Benutzer auf dem System ausführt, muss ein Prozess vorhanden sein, um diese Aktion abzuschließen (wie von einem Benutzer angefordert). Jedem Prozess muss mindestens ein Thread zugeordnet sein. Das in jedem System integrierte Betriebssystem ist dafür verantwortlich, die Prozesszeit für jeden Thread zuzuweisen. Multithreading ist also eine spezialisiertere Art des Multitasking. Durch dieses Verhalten kann der Benutzer mehrere Aufgaben gleichzeitig ausführen.
Q2. Überlegen Sie sich jedes Detail, das Sie über den Prozess wissen?
Antworten:
Mal sehen, was ein Prozess genau ist, Mr. A meldet sich beim System an und möchte das Dashboard seines Geschäfts sehen. Um sein Geschäfts-Dashboard auf dem System anzuzeigen, navigiert er zum Dashboard-Bereich. Dabei generiert er einen Prozess, der von der jeweiligen System-OS behandelt wird. Das Betriebssystem reserviert Speicher für den Prozess und das Betriebssystem stellt sicher, dass andere Prozesse nicht auf den Speicher eines Prozesses zugreifen können.
Daher können wir sagen, dass ein Prozess nichts anderes ist als ein Programm, das gerade ausgeführt wird.
Layout (Komponenten) des Prozesses -
Ein Prozess hat verschiedene Stufen, die auch als Prozesslebenszyklus bezeichnet werden können -
- Start
- Bereit
- Laufen
- Warten
- Beendet oder Beenden
Fahren wir mit den nächsten Fragen zum Multithreading-Interview in C ++ fort.
Q3. Einige der Vorteile von Fäden mit ihren Typen hervorheben?
Antworten:
Im Allgemeinen gibt es 2 Arten von Fäden
- UI-Thread - Diese werden zum Erstellen von UI-Komponenten verwendet. Z.B. Das Meldungsfeld wird eingeblendet, um dem Benutzer alle Informationen anzuzeigen.
- Arbeitsthread - es ist keine Nachrichtenpumpe enthalten
Vorteile -
- Minimiert die Kontextwechselzeit
- Steigern Sie die Kommunikation
- Einfach zu erstellen und die Threads zu verbinden
- Durch die Verwendung von Threads wird der Prozess paralleler
Q4. Warum brauchen wir mehr als einen Thread?
Antworten:
Dies ist die häufig gestellte Frage zu Multithreading-Interviews, die C ++ in einem Interview gestellt hat. Wie wir wissen, muss mit jedem Prozess mindestens ein Thread verknüpft sein. Das Reden von mehr Threads zu einem einzelnen Prozess hat mehrere Vorteile.
- UI-Oberfläche - In erster Linie ist es ein Grund, eine großartige Benutzeroberfläche mit einer großartigen Benutzererfahrung zu haben. Dabei hilft das Multi-Threading-Konzept.
- Multitasking - mit mehr Threads kann man mehr Dinge gleichzeitig erledigen.
- Benutzerfreundlichkeit - Verschiedene Komponenten des Systems können zu einem bestimmten Zeitpunkt unterschiedliche Komponenten verwenden. Hier kann Multithreading Zeit sparen.
Q5. Wie kann ein Thread in C ++ erstellt werden?
Antworten:
Es gibt 4 Möglichkeiten, dies zu tun:
- Thread-Erstellung mit dem Funktionszeiger
- Thread-Erstellung mit dem Funktionsobjekt
- Thread-Erstellung mit Lambda
- Thread-Erstellung mit der Member-Funktion
Q6. Wie starte ich einen Thread mit Funktionsobjekten und Funktionszeigern?
Antworten:
Funktionsobjekt verwenden -
class fn_object_class (
void operator () (params)
(
)
Std:: thread thread_object(fn_class_object(), params)
Funktionszeiger verwenden -
Void foo(param)
(
)
std::thread thread_obj (foo, params);
Q7. Welche Art von Problem finden Sie in diesem Code?
Antworten:
Der Code wird dem Kandidaten gegeben -
#include
int main(int argc, char **argv)
(
const int & r1 = 100;
int v = 200;
int &r2 = v;
int & r3 = 200;
return 0;
)
Der rWert muss eine Variable sein. Das Problem liegt in der Initialisierung von r3.
Teil 2 - Fragen zum Multithreading-Interview in C ++ (Fortgeschrittene)
Werfen wir jetzt einen Blick auf die erweiterten Fragen und Antworten zu Multithreading-Interviews in C ++.
Q8. Informieren Sie mich über die verfügbaren Modelle in Multithreading?
Antworten:
Viele zu viele Beziehungen
Viele zu einer Beziehung
Eins zu eins Beziehung
Q9. Benennen Sie das Entwurfsmuster für den Faden?
Antworten:
Einige beliebte Testfälle in der aktuellen IT-Branche
Thread Pool (Boos und Arbeiter)
Peer (Arbeitsteam)
Pipeline
Fahren wir mit den nächsten Fragen zum Multithreading-Interview in C ++ fort.
Q10. Besetztes Warten definieren und wie kann es vermieden werden?
Antworten:
Wenn ein Thread unter Verwendung einer aktiven Schleifenstruktur auf einen anderen Thread wartet, wird dies nicht als Wartezustand bei Besetzt bezeichnet. Dieser Stock vermeidet die Verwendung von Mutexen.
Q11. Was verstehen Sie unter Prioritätsinversionsterminologie?
Antworten:
Ein Thread mit höherer Priorität muss hinter einem Thread mit niedrigerer Priorität warten, wenn die Threads mit niedrigerer Priorität eine Sperre enthalten, auf die ein Thread mit höherer Priorität wartet. Dies ist ein Fall der Prioritätsumkehr.
Q12. Gibt es einen Unterschied zwischen einem Thread auf Benutzerebene und einem auf Kernelebene?
Antworten:
Dies ist die beliebteste Frage zu Multithreading-Interviews, die C ++ in einem Interview gestellt hat. Ja, es gibt einige entscheidende Unterschiede zwischen den beiden. Sie sind unten aufgeführt.
Benutzerlevel | Kernel-Ebene |
Diese sind schnell in Aktion und Kreation | Diese sind langsam in Aktion und Kreation |
Diese sind an kein Betriebssystem gebunden | Diese sind betriebssystemspezifisch |
Die Implementierung erfolgt auf Benutzerebene | Die Implementierung erfolgt auf Kernel-Ebene. |
Q13. Nennen Sie die Funktionen, die zum Erstellen der Threads verwendet werden?
Antworten:
Eine afxbeginthread-Funktion wird verwendet, um die Threads (beide Arten) zu erstellen. Die Thread-Erstellung erfolgt in zwei Modi - einem, der mit der Ausführung beginnt, und einem, der im angehaltenen Modus erstellt wird, der später fortgesetzt werden kann.
Q14. Was sind die 6 primitiven Synchronisierungen, die in Multithreading verfügbar sind?
Antworten:
Sie sind wie folgt -
- Mutex
- Beitreten
- Bedingungsvariable
- Barrieren
- Spin Lock
- Semaphor
Empfohlene Artikel
Dies war ein Leitfaden für die Liste der Multithreading-Interview-Fragen und Antworten auf C ++, damit der Kandidat diese Multithreading-Interview-Fragen auf einfache Weise durchgreifen kann. Hier in diesem Beitrag haben wir uns mit den wichtigsten Fragen zu Multithreading-Interviews befasst, die in Interviews häufig gestellt werden. Sie können sich auch die folgenden Artikel ansehen, um mehr zu erfahren -
- Fragen im Vorstellungsgespräch für Multithreading in Java
- Threading-Interview-Fragen
- Fragen in Vorstellungsgesprächen bei Java Servlet
- Fragen im Vorstellungsgespräch bei QlikView