Introduction Questions et réponses d'entrevue multithreading C ++
Avant d'entrer dans le filetage et les concepts connexes concernant l'interview, je voudrais donner une brève idée de la façon dont les choses fonctionnent avant le titre de l'article, c'est-à-dire que le multithreading commence à jouer son rôle. Voyons rapidement les détails
Il existe 3 types de langage informatique
- Niveau bas (niveau machine)
- Niveau intermédiaire (niveau assemblage) et
- Haut niveau (comme C ++, JAVA, COBOL, etc.)
Ces langages de haut niveau (dans notre cas, nous considérerons le C ++) interagissent avec les machines à l'aide de programmes (qui ont des codes intégrés). Un traducteur aide à traduire les détails en langage machine (0 et 1) tout comme un guide touristique qui traduit une langue en une autre.
Maintenant, une fois que cet échange d'informations a lieu entre l'homme (via des codes) et une machine, des concepts comme le filetage et le processus entrent en jeu. Nous discuterons de ces détails via les questions et réponses pour les «questions d'entrevue sur le filetage C ++».
Maintenant, si vous recherchez un emploi lié au multithreading C ++, vous devez vous préparer pour les questions d'entrevue 2019 Multithreading C ++. Il est vrai que chaque entretien est différent selon les différents profils d'emploi. Ici, nous avons préparé les importantes Questions d'Entretien Multithreading et réponses C ++ qui vous aideront à réussir votre entrevue.
Dans cet article de Questions d'Entretien Multithreading C ++ 2019, nous présenterons les 10 Questions d'Entretien Multithreading C ++ les plus importantes et les plus fréquemment posées. Ces questions d'entrevue sont divisées en deux parties:
Partie 1 - Questions d'entrevue multithreading C ++ (de base)
Cette première partie couvre les questions d'entretien de base multithreading C ++.
Q1. Qu'est-ce que le multithreading?
Répondre:
Le thread est une séquence d'exécution; il peut également être désigné comme une caractéristique du système d'exploitation (système d'exploitation).
Comprenons la phrase ci-dessus d'une manière plus simple.
Pour toute action entreprise par un utilisateur sur le système, il doit y avoir un processus pour terminer cette action (comme demandé par un utilisateur). Chaque processus doit avoir au moins un thread associé. Le système d'exploitation intégré à chaque système est responsable d'allouer le temps de traitement pour chaque thread. Le multithreading est donc un moyen plus spécialisé de multitâche. Ce comportement permet à l'utilisateur d'effectuer plusieurs tâches simultanément.
Q2. Venez avec chaque détail que vous connaissez concernant le processus?
Répondre:
Voyons ce qu'est exactement un processus, M. A se connecte au système et veut voir le tableau de bord de son entreprise. Afin d'afficher son tableau de bord d'entreprise sur le système, il accède à la section du tableau de bord. Ce faisant, il génère un processus qui est géré par le système d'exploitation respectif. Le système d'exploitation allouera de la mémoire pour le processus et le système d'exploitation s'assurera également que la mémoire d'un processus n'est pas accessible par d'autres processus.
Par conséquent, nous pouvons dire qu'un processus n'est rien d'autre qu'un programme en cours d'exécution.
Disposition (composants) du processus -
Un processus comporte différentes étapes qui peuvent également être appelées cycle de vie du processus -
- Début
- Prêt
- Fonctionnement
- Attendre
- Terminé ou quitter
Passons aux prochaines Questions d'Entretien Multithreading C ++.
Q3. Mettre en évidence certains des avantages du fil avec ses types?
Répondre:
En général, il existe 2 types de fils
- Fil d'interface utilisateur - ils sont utilisés pour créer des composants d'interface utilisateur. Par exemple. Une boîte de message apparaît pour afficher toutes les informations à l'utilisateur.
- Thread Worker - aucune pompe à message n'y est incluse
Avantages -
- Minimise le temps de changement de contexte
- Boostez vos communications
- Facile à créer et à connecter les fils
- L'utilisation des threads rend le processus plus simultané
Q4. Pourquoi avons-nous besoin de plus d'un fil?
Répondre:
Il s'agit des questions d'interview multithreading courantes que C ++ pose dans une interview. Comme nous savons qu'il doit y avoir au moins un thread associé à chaque processus. Parler de plusieurs threads à un seul processus présente de multiples avantages.
- Interface UI - La raison principale est d'avoir une excellente interface utilisateur avec une excellente expérience utilisateur. Le concept multithread aide à le faire.
- Multi-tâches - avec plus de threads, on peut faire plus de choses simultanément.
- Facilité d'utilisation - différents composants du système peuvent utiliser différents composants à un moment donné. Ici, le multi-threading peut être un gain de temps.
Q5. Quelles sont les façons de créer un thread en C ++?
Répondre:
Il existe 4 façons de procéder, à savoir:
- Création de threads à l'aide du pointeur de fonction
- Création de threads à l'aide de l'objet fonction
- Création de threads à l'aide de lambda
- Création de threads à l'aide de la fonction membre
Q6. Comment lancer un thread en utilisant des objets de fonction et un pointeur de fonction?
Répondre:
Utilisation de l'objet fonction -
class fn_object_class (
void operator () (params)
(
)
Std:: thread thread_object(fn_class_object(), params)
Utilisation du pointeur de fonction -
Void foo(param)
(
)
std::thread thread_obj (foo, params);
Q7. Quel genre de problème trouvez-vous dans ce code?
Répondre:
Le code est remis au candidat -
#include
int main(int argc, char **argv)
(
const int & r1 = 100;
int v = 200;
int &r2 = v;
int & r3 = 200;
return 0;
)
La valeur r doit être une variable. Le problème est là dans l'initialisation de r3.
Partie 2 - Questions d'entrevue multithreading C ++ (avancé)
Jetons maintenant un coup d'œil aux questions et réponses avancées sur le multithreading C ++.
Q8. M'informer des modèles disponibles en Multithreading?
Répondre:
Plusieurs à plusieurs relations
Relation plusieurs à un
Relation un à un
Q9. Nommez le motif de conception du fil?
Répondre:
Quelques cas de test populaires dans l'industrie informatique actuelle
Thread Pool (Boos et Worker)
Peer (équipe de travail)
Pipeline
Passons aux prochaines Questions d'Entretien Multithreading C ++.
Q10. Définissez l'attente occupée et comment l'éviter?
Répondre:
Lorsqu'un thread attend un autre thread avec l'utilisation d'une structure de boucle active, cela ne fait rien est appelé état d'attente occupé. Cette canne a évité d'utiliser des mutex.
Q11. Qu'entendez-vous par terminologie d'inversion prioritaire?
Répondre:
Un thread de priorité supérieure doit attendre derrière un thread de priorité inférieure dans le cas où les threads de priorité inférieure détiennent un verrou qu'un thread de priorité supérieure attend. Il s'agit d'un cas d'inversion de priorité.
Q12. Y a-t-il une différence entre un thread au niveau utilisateur et au niveau du noyau?
Répondre:
Il s'agit des questions d'entrevue multithreading les plus populaires posées par C ++ dans une interview. Oui, il existe des différences cruciales entre les deux. Ils sont listés ci-dessous.
Niveau de l'utilisateur | Niveau du noyau |
Ils sont rapides en action et en création | Ceux-ci sont lents en action et en création |
Ceux-ci ne sont liés à aucun système d'exploitation | Ce sont des OS spécifiques |
L'implémentation est au niveau de l'utilisateur | L'implémentation est au niveau du noyau. |
Q13. Nommez les fonctions utilisées pour créer les threads?
Répondre:
Une fonction afxbeginthread est utilisée pour créer les threads (les deux types). La création de thread se fait en deux modes - un qui commence à l'exécuter et un autre qui est créé en mode suspendu qui peut être repris plus tard.
Q14. Quelles sont les 6 primitives de synchronisation disponibles en multithreading?
Répondre:
Ce sont les suivants -
- Mutex
- Joindre
- Variable de condition
- Barrières
- Spin Lock
- Sémaphore
Articles recommandés
Ceci a été un guide pour la liste des questions d'entrevue multithreading et des réponses C ++ afin que le candidat puisse réprimer facilement ces questions d'entrevue multithreading C ++. Ici, dans cet article, nous avons étudié les meilleures questions d'entrevue multithreading C ++ qui sont souvent posées lors des entretiens. Vous pouvez également consulter les articles suivants pour en savoir plus -
- Questions d'entretiens chez Multithreading à Java
- Questions d'entretiens
- Questions d'entretiens chez Java Servlet
- Questions d'entretiens chez QlikView