Introduction aux questions d'entrevue multithreading et réponses en Java
En Java, le multithreading est défini comme le processus d'exécution de deux ou plusieurs threads en même temps. Il est utilisé pour accélérer le processus et en fonction de la capacité du système. Il est utilisé pour traiter les plus petites unités en parallèle pour réaliser les choses rapidement et accélérer le processus. Il aide à économiser de l'espace et du temps de mémoire. Il est principalement utilisé pour l'animation, les jeux et les grandes applications.
Maintenant, si vous recherchez un emploi lié au multithreading en java, vous devez vous préparer pour les questions d'entrevue 2019 sur le multithreading en Java. 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'entrevue multithreading en Java avec leurs réponses qui vous aideront à réussir votre entrevue.
Dans cet article sur les questions d'entrevue multithreading en Java 2019, nous présenterons les 10 questions d'entrevue multithreading les plus importantes et les plus fréquemment posées en Java. Ces questions d'entrevue sont divisées en deux parties:
Partie 1 - Questions d'entrevue multithreading en Java (de base)
Cette première partie couvre les questions et réponses d'entretien de base sur le multithreading en Java.
Q1. Expliquez les différents états de Thread?
Répondre:
Les états du thread sont également appelés cycle de vie d'un thread. Voici les différents états du fil:
- Nouveau: cela signifie que le thread est dans un nouvel état et doit créer l'instance de la classe de thread avant l'appel de la méthode de démarrage.
- Runnable: après avoir appelé la méthode de démarrage, le thread est dans un état exécutable et le planificateur ne l'a pas sélectionné pour exécuter le thread.
- En cours d'exécution: lorsque le planificateur de threads est sélectionné, il est en cours d'exécution.
- Bloqué: il est également appelé non exécutable. Lorsque le thread n'est pas éligible pour s'exécuter mais qu'il est toujours vivant.
- Terminé: il s'agit de l'état à la sortie de la méthode d'exécution ou à l'état mort.
Q2. Quel est le fil en java?
Répondre:
Le thread se réfère à une petite unité qui prend moins de temps pour l'exécuter. Il est principalement indépendant du chemin d'exécution. C'est l'un des moyens de tirer parti des multiples processeurs disponibles dans la machine. Avec l'aide de plusieurs threads, le processus de la tâche CPU devient plus rapide. Java est largement utilisé pour fournir le support du multithreading.
Passons aux prochaines questions d'entrevue multithreading en Java.
Q3. Expliquez la différence entre le thread et le processus dans JAVA?
Répondre:
Le thread est la plus petite tâche d'exécution dans le processus. Le processus est un environnement d'exécution autonome ayant plusieurs threads ou plusieurs threads. Les threads sont la subdivision du processus. Le thread a un accès direct au segment de données du processus tandis que le processus a sa propre copie du segment de données. Le thread a principalement partagé l'adresse créée par le processus et le processus a sa propre adresse. Le fil peut être facilement créé et la création de processus nécessite beaucoup de choses à faire. Le thread peut facilement communiquer avec d'autres threads tandis que le processus peut facilement communiquer avec le processus enfant mais la communication interprocessus est difficile. Le thread a sa propre pile tandis que le processus partage les ressources de mémoire comme la mémoire de tas, etc.
Q4. Expliquez le modèle de mémoire Java?
Répondre:
Il s'agit des questions d'entretien multithreading courantes en Java posées dans une interview. Plusieurs responsabilités doivent normalement être suivies par un testeur multithread dans l'industrie informatique actuelle.
Le modèle de mémoire Java a un certain ensemble de règles à suivre pour que les programmes Java se comportent d'une certaine manière dans toutes les architectures de mémoire, CPU et systèmes d'exploitation multiples, ce qui joue un rôle important dans le multithreading. Le modèle de mémoire Java aide à distinguer les changements effectués dans l'un des threads et ce changement devrait également être visible pour les autres threads. Dans ce modèle, il existe une règle d'ordre de programme, qui indique que chaque action dans le thread se produit avant chaque action du thread qui vient plus tard dans l'ordre du programme.
Q5. Expliquez l'utilisation de la variable volatile dans le multithreading Java?
Répondre:
Un mot-clé ou une variable volatile est utilisé pour garantir que les variables partagées ou d'instance sont constamment mises à jour chaque fois que des modifications sont apportées par plusieurs threads. Il s'agit d'un modificateur spécial qui ne peut être utilisé qu'avec des variables d'instance. Ce mot-clé ne peut pas être utilisé avec des méthodes. Si le champ en java est déclaré volatile, le modèle de mémoire Java garantit que tous les threads doivent avoir une valeur cohérente pour cette variable. La valeur de la variable volatile sera toujours lue dans la mémoire principale. Il réduit également le risque d'erreurs de cohérence de la mémoire. La variable volatile Java qui est une référence d'objet peut être nulle. Le mot clé volatile doit être utilisé si la variable est utilisée sur plusieurs threads.
Partie 2 - Questions d'entrevue multithreading en Java (avancé)
Jetons maintenant un œil aux questions et réponses d'entrevues multithreads avancées en Java.
Q6. Expliquez la condition de concurrence dans les threads?
Répondre:
La condition de concurrence critique s'est produite lors d'une concurrence entre plusieurs threads. Cette condition de concurrence est principalement due à certains bogues ou erreurs de programmation. Le thread qui doit être exécuté au tout début a perdu la course, puis a exécuté le second et certains changements dans le comportement du code appelé bogues non déterministes. Il devient l'un des bugs difficiles à découvrir et à reproduire en raison de la nature aléatoire des threads.
Q7. Expliquez le framework fork-join en Java?
Répondre:
Le framework fork-join est introduit dans JDK7. C'est un outil puissant pour que le développeur Java tire parti des multiples processeurs des serveurs mondiaux d'aujourd'hui. Il est principalement conçu pour un travail qui peut être divisé en plus petits morceaux. L'objectif principal est d'utiliser la puissance de traitement disponible pour augmenter les performances de l'application. Il a principalement utilisé l'algorithme de vol de travail.
Passons aux prochaines questions d'entrevue multithreading en Java.
Q8. Expliquez le pool de threads et son utilisation en Java?
Répondre:
Le pool de threads est appelé pool de threads. Le thread est généralement appelé en tant que thread de travail. La création d'un thread est coûteuse en de nombreux termes comme le temps et les ressources. Lorsque vous créez le thread au moment de la demande du processus, cela ralentit généralement le temps de réponse du processeur et seule une limite dans un certain nombre de threads peut être créée. Ainsi, en raison de ces deux problèmes majeurs, le pool de threads a été créé. En Java, l'API Java nous permet de créer différents types de pool de threads comme un pool de threads unique, qui ne prennent qu'un seul processus à la fois. L'autre est un pool de threads fixe qui prend un nombre fixe de threads. Ensuite, il y a un pool de threads mis en cache qui est un pool de threads extensible et principalement adapté aux applications pour de nombreuses tâches.
Q9. Comment les données peuvent-elles être partagées entre le fil?
Répondre:
Il s'agit des questions d'entrevue multithreading les plus populaires en Java posées dans une interview. Quelques cas de test populaires dans l'industrie informatique actuelle.
Les données peuvent être partagées entre les threads à l'aide de l'utilisation de l'objet partagé ou de la structure de données simultanées comme la file d'attente de blocage. Il suit principalement le modèle producteur-consommateur utilisant l'attente et notifie les méthodes qui impliquent le partage d'objet entre les deux threads.
Q10. Comment les threads sont-ils distribués dans la mémoire pile et tas?
Répondre:
En Java, chaque thread a sa propre pile qui est utilisée pour stocker les variables locales, les paramètres de méthode et la pile d'appels. La mémoire de tas est une mémoire commune qui est partagée par tous les threads.
Articles recommandés
Cela a été un guide pour la liste des questions et réponses d'entrevue multithreading en java afin que le candidat puisse réprimer facilement ces questions d'entrevue multithreading en Java. Ici, dans cet article, nous avons étudié les principales questions d'entrevue multithreading en Java qui sont souvent posées lors des entretiens. Vous pouvez également consulter les articles suivants pour en savoir plus -
- Questions d'entretiens chez Multithreading
- Questions d'entretiens chez Java Servlet
- Questions d'entretiens chez JSP
- Questions d'entretiens chez QlikView
- Guide des questions d'entrevue de Servlet