Sissejuhatus Mitme lõimega intervjuu küsimused ja vastused C ++
Enne kui hakkame uurima keerukust ja sellega seotud mõisteid intervjuu kohta, tahaksin enne artikli pealkirja anda lühikese ettekujutuse sellest, kuidas asjad toimivad, st Multithreading hakkab oma osa etendama. Vaatame kiiresti üksikasjad
On 3 tüüpi arvutikeelt
- Madal tase (masina tase)
- Keskmine tase (assamblee) ja
- Kõrge tase (nt C ++, JAVA, COBOL jne)
Need kõrgetasemelised keeled (meie puhul kaalume C ++) suhtlevad masinatega programme kasutades (millesse on sisse ehitatud koodid). Tõlk aitab tõlkida detaile masina keelde (0 ja 1), täpselt nagu giid, mis tõlgib ühest keelest teise.
Nüüd, kui see teabevahetus toimub inimese (koodide kaudu) ja masina vahel, satuvad pildile sellised mõisted nagu keermestamine ja protsess. Neid üksikasju arutame küsimuste ja vastuste kaudu “C ++ keermestamise intervjuu küsimustele”.
Kui otsite tööd, mis on seotud mitme keermega C ++-ga, peate valmistuma 2019. aasta mitme keermega intervjuu küsimusteks C ++. On tõsi, et iga vestlus on erinevate tööprofiilide järgi erinev. Oleme siin koostanud olulised mitme lõimega intervjuu küsimused ja vastused C ++, mis aitavad teil oma intervjuus edu saavutada.
Selles 2019. aasta mitme lõimega intervjuu küsimuste C ++ artiklis tutvustame 10 kõige olulisemat ja korduma kippuvat intervjuu küsimust C ++. Need intervjuuküsimused on jagatud kahte ossa:
1. osa - mitme lõimega intervjuu küsimused C ++ (põhiline)
See esimene osa hõlmab põhilisi mitme lõimega intervjuu küsimusi C ++.
Q1. Mis on mitmekiuline?
Vastus:
Niit on täitmise jada; seda võib nimetada ka OS-i (opsüsteemi) tunnuseks.
Mõistame ülaltoodud lauset lihtsamal viisil.
Mis tahes toimingute jaoks, mida kasutaja süsteemis võtab, peab olema toiming, mille abil see toiming lõpule viia (nagu kasutaja on palunud). Igal protsessil peab olema sellega seotud vähemalt üks niit. Igas süsteemis sisseehitatud OS vastutab iga lõime jaoks protsessiaja eraldamise eest. Niisiis on mitmekordne keermestamine mitmekülgsemaks muutmise viis. See käitumine võimaldab kasutajal täita korraga mitu toimingut.
Q2. Kas leiate iga detaili, mida teate protsessi kohta?
Vastus:
Vaatame, mis protsess täpselt on, hr A logib süsteemi sisse ja soovib näha oma ettevõtte juhtpaneeli. Ettevõtte juhtpaneeli süsteemis vaatamiseks navigeerib ta armatuurlaua jaotisesse. Seejuures genereerib ta protsessi, mida haldab vastav süsteemi OS. OS eraldab protsessi jaoks mälu ja ka OS hoolitseb selle eest, et ühe protsessi mälu pole teistele protsessidele juurdepääsetav.
Seega võime öelda, et protsess pole midagi muud kui käivitatav programm.
Protsessi paigutus (komponendid) -
Protsessil on erinevad etapid, mida võib nimetada ka protsessi elutsükliks -
- Alusta
- Valmis
- Jooksmine
- Ootan
- Lõpetatud või lõpetatud
Liigume järgmise multiteemalise intervjuu küsimuste juurde C ++.
Q3. Kas tuua esile mõned niidi eelised selle tüüpidega?
Vastus:
Üldiselt on 2 tüüpi niidid
- UI-niit - neid kasutatakse UI-komponentide loomiseks. Nt. Hüpikaken avaneb, kui soovite kasutajale kogu teavet kuvada.
- Töötaja niit - selles pole sõnumipumpa
Eelised -
- Minimeerib kontekstivahetuse aja
- Suurendage sidet
- Keermeid on lihtne luua ja ühendada
- Keermete kasutamine muudab protsessi samaaegsemaks
Q4. Miks vajame rohkem kui ühte lõime?
Vastus:
See on tavaline intervjuu C ++ mitmekorruseline intervjuuküsimus. Nagu me teame, peab iga protsessiga olema seotud vähemalt üks niit. Rohkemate lõimede rääkimisel ühe protsessiga on mitu eelist.
- Kasutajaliidese liides - ennekõike on hea kasutajaliidese olemasolu koos suurepärase kasutajakogemusega. Mitme keermega kontseptsioon aitab seda teha.
- Mitme ülesande täitmine - rohkemate lõimede korral saab üheaegselt teha rohkem asju.
- Kasutatavus - süsteemi erinevad komponendid võivad teatud ajahetkel kasutada erinevaid komponente. Siin võib mitme keermega niitmine olla aja kokkuhoid.
Q5. Milliseid viise saab lõime luua C ++ -s?
Vastus:
Selleks on neli viisi, mis on järgmised -
- Niidi loomine funktsiooni osuti abil
- Lõime loomine funktsiooniobjekti abil
- Keerme loomine lambda abil
- Keerme loomine liigefunktsiooni abil
Q6. Kuidas käivitada lõime funktsiooniobjektide ja funktsiooni osuti abil?
Vastus:
Funktsiooni objekti kasutamine -
class fn_object_class (
void operator () (params)
(
)
Std:: thread thread_object(fn_class_object(), params)
Funktsiooni osuti kasutamine -
Void foo(param)
(
)
std::thread thread_obj (foo, params);
Q7. Millist probleemi leiate sellest koodist?
Vastus:
Kood antakse kandidaadile -
#include
int main(int argc, char **argv)
(
const int & r1 = 100;
int v = 200;
int &r2 = v;
int & r3 = 200;
return 0;
)
Rvaliteet peab olema muutuja. Küsimus on r3 lähtestamises.
2. osa - mitme lõimega intervjuu küsimused C ++ (täpsem)
Vaatame nüüd keerulisi mitme lõimega intervjuu küsimusi ja vastuseid C ++.
Q8. Tutvustage multithreadingas saadaolevaid mudeleid?
Vastus:
Paljudest paljudesse suhetesse
Paljud ühe suhtes
Üks ühele suhe
Q9. Nimetage lõime kujundusmuster?
Vastus:
Mõned populaarsed testijuhtumid praeguses IT-valdkonnas
Keermebassein (Boos ja töötaja)
Kaaslane (töömeeskond)
Torustik
Liigume järgmise multiteemalise intervjuu küsimuste juurde C ++.
Q10. Määratlege hõivatud ootamine ja kuidas seda vältida?
Vastus:
Kui niit ootab aktiivse silmuskonstruktsiooni abil teist lõime, siis see, mis midagi ei tee, on hõivatud ooteolek. See suhkruroog vältis mutexide kasutamist.
Q11. Mida saate aru prioriteetse inversiooni terminoloogiast?
Vastus:
Kõrgema prioriteediga niit peab madalama prioriteediga niidi taga ootama, kui madalama prioriteediga niidid hoiavad lukku, mida kõrgema prioriteediga niit ootab. See on prioriteedi ümberpööramise juhtum.
Q12. Kas on vahet kasutaja- ja kerneli-taseme lõimede vahel?
Vastus:
See on kõige populaarsem intervjuu käigus küsitud multikeermestav intervjuuküsimus C ++. Jah, nende kahe vahel on mõned olulised erinevused. Need on loetletud allpool.
Kasutaja tase | Tuuma tase |
Need on kiire tegutsemise ja loomisega | Need on aeglaselt tegutsevad ja loovad |
Need pole seotud ühegi OS-iga | Need on OS-i spetsiifilised |
Rakendamine toimub kasutaja tasemel | Rakendamine toimub kerneli tasemel. |
Q13. Nimetage lõimede loomisel kasutatavad funktsioonid?
Vastus:
Lõimede loomiseks (mõlemat tüüpi) kasutatakse funktsiooni afxbeginthread. Keerme loomine toimub kahes režiimis - üks, mis alustab selle täitmist, ja teine, mis luuakse peatatud režiimis, mida saab hiljem jätkata.
Q14. Millised on 6 sünkroniseerimist, mis on Multithreadsis saadaval?
Vastus:
Need on järgmised -
- Mutex
- Liitu
- Seisund varieeruv
- Tõkked
- Spinnelukk
- Semafor
Soovitatavad artiklid
See on juhend mitmekordse intervjuu küsimuste ja vastuste C ++ loendisse, nii et kandidaat saab hõlpsalt neid mitme keermega intervjuu küsimusi C ++ lahendada. Selles postituses oleme uurinud populaarsemaid intervjuu-küsimusi C ++, mida küsitakse sageli intervjuudes. Lisateabe saamiseks võite vaadata ka järgmisi artikleid -
- Mitme lõimega intervjuuküsimused Java-s
- Intervjuu küsimused
- Java Servleti intervjuu küsimused
- QlikView intervjuu küsimused