Introduction aux questions et réponses d'entrevues multithreading
Le multithreading est essentiellement défini comme la capacité d'un CPU (unité centrale de traitement) à traiter simultanément plusieurs threads. Il joue un rôle important dans l'architecture informatique. Il existe principalement trois types de modèles de multithreading.
- Modèle plusieurs à plusieurs: dans le cas de relations de modèle plusieurs à plusieurs, il multiplie un nombre différent ou un ensemble de threads sur un ensemble égal de threads du noyau.
- Modèle plusieurs à un: dans ce cas, il relie différents types de threads de niveau utilisateur à un thread de niveau noyau. Avec l'implémentation de ce processus, un seul thread pourra accéder au thread à la fois et donc plusieurs types de threads ne pourront pas s'exécuter en parallèle au même moment.
- Modèle un à un: dans le cas d'un modèle un à un, il existe une relation directe entre un thread de niveau utilisateur et le thread de niveau noyau. Il fournit en fait plus d'implémentation simultanée que le modèle plusieurs à un. Il fournit également la prise en charge de l'exécution parallèle de plusieurs threads.
Maintenant, si vous recherchez un emploi lié au multithreading, vous devez vous préparer pour les questions d'entrevue de 2019. Il est vrai que chaque entretien est différent selon les différents profils d'emploi, mais pour effacer l'entretien, vous devez avoir une bonne et claire connaissance des processus de multithreading. Ici, nous avons préparé les importantes questions et réponses d'entrevue multithreading qui vous aideront à réussir votre entrevue.
Vous trouverez ci-dessous les 10 questions et réponses importantes de l'entretien multithread 2019 qui sont fréquemment posées lors d'un entretien. Ces questions sont divisées en deux parties:
Partie 1 - Questions d'entrevue multithread (de base)
Cette première partie couvre les questions et réponses d'entrevue de base sur le multithreading
1. Expliquez les différences entre le multithreading et le multitraitement?
Répondre:
Dans le cas du multithreading, les processus d'application et les threads utilisent pour partager les ressources centrales uniques ou multiples qui incluent les caches CPU, la mémoire tampon de traduction et les unités de calcul. Mais dans le cas du multitraitement, l'application implémente plusieurs unités de traitement complètes dans un ou plusieurs cœurs. Il s'agit de la différence fondamentale entre le multithreading et le multitraitement, car le principal objectif du multithreading est d'implémenter une utilisation plus simple du noyau à l'aide du niveau de thread et du parallélisme au niveau de l'instruction.
2. Expliquez les différents types de multithreading?
Répondre:
Il s'agit des questions d'entretien multithreading courantes qui sont fréquemment posées lors d'un entretien. Il existe principalement trois types de processus multithreading.
- Multithreading entrelacé: ce type de multithreading est principalement traité pour rendre le pipeline d'exécution indépendant de toute dépendance en supprimant tous les décrochages de dépendance de données.
- Multithreading à granularité grossière: il s'agit d'un type de multithreading où un thread peut continuer à s'exécuter jusqu'à ce qu'il soit bloqué par un événement normal qui traiterait un long décrochage de latence.
- Multithreading simultané: Il s'agit du type nouveau et avancé de processus de multithreading. Dans ce cas, le processus multithreading est principalement implémenté vers les processeurs superscalaires.
Passons aux prochaines questions d'entrevue multithreading
3. Expliquez les différents types d'états de threads?
Répondre:
Retrouvez ci-dessous les différents types d'états de threads.
- Exécutable: dans cet état, un thread est utilisé pour rester dans un état exécutable
- Terminé: dans cet état, le thread doit être terminé et ne doit pas rester dans la phase exécutable en cours.
- En attente: dans cet état, le thread est utilisé pour attendre qu'un autre thread exécute l'activité spécifiée
- Attente temporisée: dans cet état, le thread dépend du temps et doit attendre qu'un autre thread implémente l'action spécifiée.
- Bloqué: dans cet état, le thread est utilisé pour rester dans l'état bloqué par rapport à sa phase d'exécution actuelle et attend un verrouillage du moniteur en fonction de ses tâches affectées actuelles.
4. Expliquez les méthodes wait () et sleep ()?
Répondre:
La méthode wait () est décrite dans la classe d'objets et est implémentée pour libérer le système de verrouillage lors de la couverture du code. La méthode sleep () est décrite dans la classe de threads et est utilisée pour suspendre l'exécution du thread en cours pendant une durée spécifiée donnée.
5. Expliquez différentes méthodes pour les threads?
Répondre:
Voici les quelques méthodes importantes pour les threads:
- Start (): cette méthode est utilisée pour démarrer le processus d'exécution du thread. Il s'agit de la méthode de base qui doit être utilisée pour démarrer tout processus de multithreading.
- getName (): il est utilisé pour obtenir le nom d'un thread
- setpoint (Int new priority): Cette méthode est utilisée pour changer les priorités du thread
- yield (): Cette méthode est utilisée pour suspendre l'exécution du thread en cours tandis que l'autre thread poursuivra la phase d'exécution normale.
Partie 2 - Questions d'entrevue multithreading (avancé)
Jetons maintenant un coup d'œil aux questions et réponses d'entrevue avancées sur le multithreading.
6. Expliquez le processus de synchronisation des threads?
Répondre:
En cas de multithreading, il existe une présence de comportement asynchrone dans les programmes qui peuvent être équilibrés et manipulés de manière appropriée tout au long du processus de synchronisation. Souvent, il a été constaté lorsque plusieurs threads effectuent des activités de lecture et d'écriture en même temps, et qu'il y a alors une possibilité de créer des confusions. Ainsi, pour éviter cette incohérence, le processus de synchronisation des threads a été implémenté. Dans ce processus, lorsque le thread entre dans le bloc synchronisé, il devient inaccessible pour les autres et aucun autre thread ne peut appeler cette méthode.
7. Expliquez les différences entre les threads de niveau utilisateur et de niveau noyau?
Répondre:
Trouvez ci-dessous les différences entre les threads au niveau utilisateur et au niveau du noyau
- Les threads au niveau utilisateur sont plus rapides que les threads au niveau du noyau du point de vue de la création et de la gestion
- Les threads au niveau utilisateur sont génériques tandis que les threads au niveau du noyau sont plus spécifiques au système d'exploitation concerné.
- En cas de niveau utilisateur, le processus de multithreading ne peut pas être implémenté sur le multitraitement tandis que le niveau du noyau peut lui-même être multithread.
Passons aux prochaines questions d'entrevue multithreading.
8. Qu'entendez-vous par processus léger?
Répondre:
Il s'agit des questions d'interview multithreading avancées posées dans une interview.Le fil est également connu comme un processus léger. Il s'agit essentiellement d'un flux d'informations et de son exécution à travers le code du processus par rapport à ses propres programmes intégrés. Il améliore les performances en utilisant le parallélisme.
9. Que voulez-vous dire par Livelock?
Répondre:
Lorsque tous les threads sont bloqués et que l'exécution est arrêtée en raison de l'indisponibilité des ressources, cette situation est appelée livelock.
10. Expliquez les avantages et les inconvénients du multithreading?
Répondre:
Découvrez ci-dessous les avantages et les inconvénients du multithreading
Avantages:
- Il peut être facilement étendu aux multiprocesseurs.
- Il fournit un support d'action indépendant pour réussir ou échouer en conséquence
- La méthode Wait / Sleep peut être implémentée plus facilement et plus proprement
Les inconvénients:
- Une synchronisation minutieuse est requise
- Parfois, créez des problèmes liés à l'espace en cas de threads bloqués.
Article recommandé
Cela a été un guide pour la liste des questions et réponses d'entrevue multithreading afin que le candidat puisse réprimer facilement ces questions d'entrevue multithreading. Ici, dans cet article, nous avons étudié les principales questions d'entrevue multithreading qui sont souvent posées lors des entretiens. Vous pouvez également consulter les articles suivants pour en savoir plus -
- Questions d'entretiens chez JS
- Questions d'entretiens chez Java Multi-threading
- Questions d'entretiens chez VB.NET
- Questions d'entretiens chez Spring framework
- Spring vs Hibernate: Caractéristiques
- Spring vs Struts: Fonctions
- Meilleures questions d'entretien pour Hibernate