Top 10 Întrebări de interviu multithreading C ++ (Actualizare pentru 2019)

Cuprins:

Anonim

Introducere Întrebări și răspunsuri cu interviuri multithreading C ++

Înainte de a intra în discutiile și conceptele conexe cu privire la interviu, aș dori să fac o scurtă idee despre cum funcționează lucrurile înainte de titlul articolului, adică Multithreading începe să își joace rolul. Să vedem rapid detaliile

Există 3 tipuri de limbaj de computer

  • Nivel scăzut (nivel de mașină)
  • Nivel mediu (nivel de asamblare) și
  • Nivel înalt (cum ar fi C ++, JAVA, COBOL etc)

Aceste limbaje la nivel înalt (în cazul nostru vom considera C ++) interacționează cu mașinile cu utilizarea programelor (care are coduri încorporate în ele). Un traducător ajută la traducerea detaliilor în limbajul mașinii (0 și 1) la fel ca un ghid turistic care traduce o limbă în alta.

Acum, odată ce acest schimb de informații are loc între om (prin coduri) și o mașină, apar imagini precum filetarea și procesul. Aceste detalii le vom discuta prin întrebare și răspuns pentru „interogări C ++ de interviuri”.

Acum, dacă sunteți în căutarea unui loc de muncă care are legătură cu Multithreading C ++, atunci trebuie să vă pregătiți pentru întrebările de interviu C ++ din Multithreading 2019. Este adevărat că fiecare interviu este diferit în funcție de diferitele profiluri de muncă. Aici, am pregătit importante întrebări pentru interviu cu multithreading și răspunsuri C ++, care vă vor ajuta să obțineți succes în interviu.

În acest articol de întrebări pentru interviu multithreading C ++ din 2019, vom prezenta 10 cele mai importante și frecvente întrebări de interviu C ++. Aceste întrebări de interviu sunt împărțite în două părți:

Partea 1 - Întrebări de interviu multithreading C ++ (de bază)

Această primă parte acoperă întrebările de bază C ++ pentru interviuri multithreading C ++.

Q1. Ce este multithreading?

Răspuns:
Firul este o secvență de execuție; acesta poate fi, de asemenea, menționat ca o caracteristică a sistemului de operare (sistem de operare).
Să înțelegem propoziția de mai sus într-un mod mai simplu.
Pentru orice acțiune întreprinsă de un utilizator în sistem, trebuie să existe un proces pentru a finaliza acea acțiune (așa cum a solicitat un utilizator). Fiecare proces trebuie să aibă cel puțin un fir asociat cu acesta. Sistemul de operare încorporat în fiecare sistem este responsabil de alocarea timpului de proces pentru fiecare thread. Deci Multithreading este un mod mai specializat de multitasking. Acest comportament permite utilizatorului să efectueze mai multe sarcini simultan.

Q2. Vino cu toate detaliile pe care le cunoști cu privire la proces?

Răspuns:
Să vedem care este exact un proces, domnul A se conectează la sistem și vrea să vadă tabloul de bord al activității sale. Pentru a vizualiza tabloul de bord al afacerii sale în sistem, el va naviga la secțiunea de bord. În acest fel, el generează un proces care este gestionat de sistemul de operare respectiv. Sistemul de operare va aloca memorie pentru proces și, de asemenea, sistemul de operare se va asigura că memoria unui proces nu este accesibilă de alte procese.

Prin urmare, putem spune că un proces nu este altceva decât un program în execuție.

Aspectul (componentele) procesului -

Un proces are diferite etape care pot fi, de asemenea, denumite ciclul de viață al procesului -

  • start
  • Gata
  • Alergare
  • Aşteptare
  • Terminat sau Ieșit

Haideți să trecem la următoarea întrebare C ++ pentru interviuri multithreading.

Q3. Evidențiați unele dintre avantajele filetului cu tipurile sale?

Răspuns:
În general, există 2 tipuri de fire

  • UI thread - acestea sunt utilizate pentru a crea componente UI. De exemplu. Se afișează caseta de mesaje pentru a afișa orice informație pentru utilizator.
  • Firul lucrătorului - nu este inclusă nicio pompă de mesaje

Avantaje -

  • Minimizează ora de comutare a contextului
  • Sporirea comunicărilor
  • Ușor de creat și conectat firele
  • Utilizarea firelor face procesul mai concurent

Q4. De ce avem nevoie de mai mult de un fir?

Răspuns:
Aceasta este întrebarea comună pentru interviuri multithreading C ++ adresată într-un interviu. După cum știm că trebuie să existe cel puțin un fir asociat cu fiecare proces. Vorbind despre mai multe fire la un singur proces are multiple beneficii.

  • Interfață UI - Primul și în primul rând motivul este să ai o interfață de utilizator excelentă, cu experiență excelentă pentru utilizatori. Conceptul multi-thread ajută la realizarea acestui lucru.
  • Multi-tasking - cu mai multe fire se pot face mai multe lucruri simultan.
  • Utilizabilitate - diferite componente ale sistemului ar putea utiliza diferite componente la un moment dat. Aici multi-threading poate fi un economizor de timp.

Q5. Care sunt modalitățile de a crea un thread în C ++?

Răspuns:
Există 4 modalități de a face acest lucru, care sunt următoarele:

  • Crearea firelor folosind indicatorul funcției
  • Crearea firelor folosind obiectul funcției
  • Crearea firelor folosind lambda
  • Crearea firelor folosind funcția de membru

Q6. Cum să lansezi un thread folosind obiecte funcționale și pointer funcție?

Răspuns:
Utilizarea obiectului funcțional -

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

Folosind indicatorul funcțional -

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

Q7. Ce fel de problemă găsiți în acest cod?

Răspuns:
Codul este dat candidatului -

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

Valoarea trebuie să fie o variabilă. Problema se află la inițializarea r3.

Partea 2 - Întrebări de interviu multithreading C ++ (avansat)

Haideți acum să aruncăm o privire la întrebările avansate de interviuri și răspunsuri multithreading C ++.

Q8. Scurtați-mă despre modelele disponibile în Multithreading?

Răspuns:
Multe la multe relații

Mulți la o relație

Relație unu la unu

Q9. Denumiți modelul de design pentru fir?

Răspuns:
Câteva cazuri de testare populare din industria IT actuală
Piscina de filet (Boos și Muncitor)

Peer (echipaj de lucru)

Pipeline

Haideți să trecem la următoarea întrebare C ++ pentru interviuri multithreading.

Q10. Definiți așteptarea ocupată și cum poate fi evitată?

Răspuns:
Când un thread așteaptă un alt thread cu utilizarea unei structuri cu buclă activă, asta nu face nimic este cunoscut ca stare de așteptare ocupată. Acest baston a evitat utilizarea mutexurilor.

Q11. Ce înțelegeți prin terminologia inversării prioritare?

Răspuns:
Un fir cu prioritate mai mare trebuie să aștepte în spatele unui fir cu prioritate mai mică într-un caz în care firele cu prioritate mai mică dețin un blocaj pe care îl așteaptă un fir cu prioritate mai mare. Acesta este un caz de inversare prioritară.

Q12. Există vreo diferență între firele de nivel utilizator și cele de nivel Kernel?

Răspuns:
Acesta este cel mai popular Multithreading Interviu Întrebări C ++ adresate într-un interviu. Da, există unele diferențe cruciale între cei doi. Acestea sunt enumerate mai jos.

Nivel de utilizator Nivelul nucleului
Acestea sunt rapide în acțiune și creație Acestea sunt lente în acțiune și creare
Acestea nu sunt legate de niciun sistem de operare Acestea sunt specifice sistemului de operare
Implementarea este la nivel de utilizator Implementarea este la nivelul Kernel.

Q13. Numește funcțiile care sunt utilizate pentru crearea firelor?

Răspuns:
O funcție afxbeginthread este utilizată pentru a crea fire (ambele tipuri). Crearea firelor se face în două moduri - unul care începe executarea lui și altul care se creează în modul suspendat, care poate fi reluat ulterior.

Q14. Care sunt cele 6 sincronizări primitive disponibile în Multithreading?

Răspuns:
Acestea sunt următoarele -

  • mutex
  • A te alatura
  • Variabilă de stare
  • bariere
  • Spin Lock
  • Semafor

Articole recomandate

Acesta a fost un ghid către lista Întrebărilor de interviu multithreading și răspunsurile C ++, astfel încât candidatul să poată împărți cu ușurință aceste întrebări de interviu C ++ multithreading. Aici, în această postare, am studiat cele mai bune întrebări C ++ pentru interviuri multithreading, care sunt adesea puse în interviuri. De asemenea, puteți consulta următoarele articole pentru a afla mai multe -

  1. Întrebări cu interviuri multithreading în Java
  2. Threading Interviu Întrebări
  3. Întrebări de interviu Java Servlet
  4. Întrebări pentru interviu QlikView