Topp 10 flerstråles intervjuspørsmål C ++ (Oppdatering for 2019)

Innholdsfortegnelse:

Anonim

Innledning Multithreading Intervju Spørsmål og svar C ++

Før vi går inn på gjengene og relaterte konsepter angående intervju, vil jeg gjerne gi en kort ide om hvordan ting fungerer før tittelen på artikkelen, dvs. Multithreading begynner å spille sin rolle. La oss raskt se detaljene

Det er 3 typer dataspråk

  • Lavt nivå (maskinnivå)
  • Midtnivå (monteringsnivå) og
  • Høyt nivå (som C ++, JAVA, COBOL osv.)

Disse høynivåspråkene (i vårt tilfelle vil vi vurdere C ++) samhandler med maskinene ved bruk av programmer (som har koder innebygd i dem). En oversetter hjelper deg med å oversette detaljene til maskinspråk (0-er og 1-er), akkurat som en guide som oversetter et språk til et annet.

Når denne informasjonsutvekslingen foregår mellom mennesket (via koder) og en maskin, kommer begreper som tråd og prosess inn i bildet. Disse detaljene vil vi diskutere via spørsmål og svar for “C ++ tråder intervjuspørsmål”.

Nå, hvis du leter etter en jobb som er relatert til Multithreading C ++, må du forberede deg på intervjuspørsmålene C ++ fra 2019. Det er sant at hvert intervju er forskjellig per de forskjellige jobbprofilene. Her har vi utarbeidet de viktige flerstrengingsintervjuens spørsmål og svar C ++ som vil hjelpe deg å få suksess i intervjuet.

I denne artikkelen om multithreading-intervju C ++ fra 2019, skal vi presentere 10 viktigste og ofte stilte multithreading-intervjuspørsmål C ++. Disse intervjuspørsmålene er delt inn i to deler er som følger:

Del 1 - Multithreading Interview Questions C ++ (Basic)

Denne første delen dekker grunnleggende multithreading Interview Questions C ++.

Q1. Hva er multithreading?

Svar:
Tråden er en sekvens av utførelse; det kan også bli referert til som en funksjon i OS (operativsystem).
La oss forstå setningen ovenfor på en enklere måte.
For alle handlinger som gjøres av en bruker på systemet, må det være en prosess for å fullføre den handlingen (som bedt av en bruker). Hver prosess må ha minst en tråd tilknyttet. Operativsystemet som er innebygd i hvert system, er ansvarlig for å fordele prosesstiden for hver tråd. Så multithreading er en mer spesialisert måte å multitaske på. Denne oppførselen lar brukeren utføre flere oppgaver samtidig.

Q2. Kom med hver detalj du kjenner til prosessen?

Svar:
La oss se hva en prosess nøyaktig er. Mr. A logger seg på systemet og vil se instrumentbrettet for virksomheten sin. For å se forretningsdashbordet på systemet, navigerer han til dashborddelen. Dermed genererer han en prosess som håndteres av det respektive system OS. OS vil tildele minne til prosessen, og også OS vil sørge for at minnet til en prosess ikke er tilgjengelig av andre prosesser.

Derfor kan vi si at en prosess ikke er annet enn et program i utførelse.

Oppsett (komponenter) av prosessen -

En prosess har forskjellige stadier som også kan kalles prosesslivssyklus -

  • Start
  • Klar
  • Løping
  • Venter
  • Avsluttet eller avslutt

La oss gå til de neste flertallingsintervjuespørsmålene C ++.

Q3. Vil du fremheve noen av fordelene med tråd med dens typer?

Svar:
Generelt er det to typer tråder

  • UI-tråd - disse brukes til å lage UI-komponenter. Eg. Meldingsboks dukker opp for å vise all informasjon til brukeren.
  • Arbeidertråd - ingen meldingspumpe er inkludert i den

Fordeler -

  • Minimerer kontekstbyttetiden
  • Øk kommunikasjonen
  • Enkelt å lage og koble trådene
  • Trådbruk gjør prosessen mer samtidig

Q4. Hvorfor trenger vi mer enn en tråd?

Svar:
Dette er de vanlige multithreading Interview Questions C ++ stilt i et intervju. Som vi vet at det må være minst en tråd tilknyttet hver prosess. Å snakke om flere tråder til en enkelt prosess har flere fordeler.

  • UI-grensesnitt - Først og fremst grunn er å ha et flott brukergrensesnitt med den store brukeropplevelsen. Multitrådende konsept hjelper til med å gjøre det.
  • Multi-tasking - med å ha flere tråder kan man gjøre flere ting samtidig.
  • Brukbarhet - forskjellige komponenter i systemet bruker kanskje forskjellige komponenter på et gitt tidspunkt. Her kan multi-threading være en tidsbesparende.

Q5. Hva er måtene å lage en tråd i C ++?

Svar:
Det er fire måter å gjøre dette på som følger:

  • Trådopprettelse ved hjelp av funksjonspekeren
  • Trådoppretting ved hjelp av funksjonsobjektet
  • Trådoppretting ved hjelp av lambda
  • Trådopprettelse ved hjelp av medlemsfunksjonen

Q6. Hvordan starte en tråd ved å bruke funksjonsobjekter og funksjonspeker?

Svar:
Bruke funksjonsobjekt -

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

Bruke funksjonspeker -

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

Q7. Hva slags problem finner du i denne koden?

Svar:
Koden gis til kandidaten -

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

Verdien må være en variabel. Problemet er der i initialiseringen av r3.

Del 2 - Multithreading Interview Questions C ++ (Advanced)

La oss nå ta en titt på de avanserte spørsmålene og svarene til flerstrenging av intervjuer C ++.

Q8. Kort om de tilgjengelige modellene i Multithreading?

Svar:
Mange til mange forhold

Mange til ett forhold

En til én relasjon

Q9. Nevn designmønsteret for tråden?

Svar:
Noen populære testfall i dagens IT-bransje
Gjengebasseng (Boos and Worker)

Peer (Work Crew)

Pipeline

La oss gå til de neste flertallingsintervjuespørsmålene C ++.

Q10. Definer opptatt med å vente, og hvordan det kan unngås?

Svar:
Når en tråd venter på en annen tråd ved bruk av en aktiv loopingstruktur, er det ikke noe som kalles opptatt ventetilstand. Denne stokk unngås ved bruk av mutexer.

Q11. Hva forstår du ved prioritert inversjonsterminologi?

Svar:
En tråd med høyere prioritet må vente bak en tråd med lavere prioritet i tilfelle der trådene med lavere prioritet holder en lås som en tråd med høyere prioritet venter på. Dette er et tilfelle av prioritert inversjon.

Q12. Er det noen forskjell mellom et trinn på brukernivå og kjerneliv?

Svar:
Dette er de mest populære spørsmålene om flerstrenging av intervjuer C ++ ble stilt i et intervju. Ja, det er noen avgjørende forskjeller mellom de to. De er listet opp nedenfor.

Brukernivå Kernennivå
Disse er raske i aksjon og skapelse Disse er sakte i handling og skapelse
Disse er ikke bundet til noe OS Disse er OS-spesifikke
Implementering er på brukernivå Implementering er på Kernel-nivå.

Q13. Gi navn til funksjonene som brukes til å lage trådene?

Svar:
En afxbeginthread-funksjon brukes til å lage trådene (begge slag). Trådopprettelse gjøres i to moduser - en som begynner å utføre den og en annen som blir opprettet i suspendert modus som kan gjenopptas senere.

Q14. Hva er de 6 primære synkroniseringene som er tilgjengelige i multithreading?

Svar:
De er som følger -

  • mutex
  • Bli med
  • Tilstandsvariabel
  • barrierer
  • Spinnlås
  • semafor

Anbefalte artikler

Dette har vært en guide til listen over multithreading-intervjuspørsmål og svar på C ++ slik at kandidaten enkelt kan slå sammen disse multithreading-intervjuspørsmålene. Her i dette innlegget har vi studert topp multithreading Interview Questions C ++ som ofte stilles i intervjuer. Du kan også se på følgende artikler for å lære mer -

  1. Multithreading Interview Questions in Java
  2. Trådende intervjuspørsmål
  3. Spørsmål om Java Servlet-intervju
  4. QlikView intervjuspørsmål