Introduction Questions d'entretiens Java et réponses sur le multithreading

Avant de passer aux questions d'entrevue Java sur le multithreading, discutons de quelques faits sur le multithreading.

# 1 - Donc, nous devons d'abord savoir quel est le fil?

Il s'agit de la plus petite unité de traitement d'une œuvre particulière appelée un thread. Il s'agit d'une nature légère si facile à utiliser. Maintenant, il nous vient à l'esprit que pourquoi nous devrions en avoir besoin, le multithreading est utilisé pour réaliser le multitâche. Le multitâche pourrait également être réalisé d'une autre manière et il est connu sous le nom de multitraitement.

Cependant, le multithreading est plus populaire et il est efficace d'utiliser sur le multitraitement car les threads ont des propriétés qu'il utilise une zone de mémoire partagée alors qu'en cas de multi-processus, il consomme beaucoup de mémoire et d'autres ressources qui ne sont pas efficaces.

Ainsi, le processus d'exécution simultanée de plusieurs threads pour effectuer un travail est appelé multithreading.

Quelques avantages de l'utilisation du multithreading:

  • Les threads fonctionnent indépendamment, il est donc indépendant des autres opérations effectuées dans les systèmes et il est donc possible d'effectuer plusieurs opérations en même temps.
  • La consommation de temps est moindre avec l'utilisation du multithreading car de nombreuses opérations peuvent être effectuées simultanément.
  • Les threads sont indépendants comme nous l'avons déjà vu, donc une exception se produit dans un seul thread n'interférera pas avec les opérations des autres threads.
  • Le coût des communications entre deux threads est faible.

Nous pouvons réaliser le multitâche des deux manières suivantes:

  • Multitâche basé sur les processus (multitraitement)
  • Multitâche basé sur les threads (multithreading)

REMARQUE: Comme nous discutons du multithreading, nous nous concentrerons sur le multitâche basé sur les threads.

Cycle de vie d'un fil:

  • Nouveau
  • Runnable
  • Fonctionnement
  • Non exécutable (bloqué)
  • Terminé

REMARQUE: Pour votre référence et une meilleure compréhension, parcourez attentivement l'image ci-dessous.

# 2 - Comment sont créés les threads?

Maintenant, c'est le plus important et le premier point par lequel nous pouvons créer le fil. Il existe deux façons de créer des threads, qui sont décrites ci-dessous:

  • En étendant la classe Thread
  • En implémentant l'interface Runnable

REMARQUE:

Lorsqu'un nouveau thread a été créé, les tâches suivantes sont effectuées:

  1. Dans une nouvelle pile d'appels, un thread sera créé.
  2. Le thread change son état de New en Runnable.
  3. Lorsque le thread sera démarré, il trouvera la méthode run () puis s'exécutera.

EXEMPLE:

By extending Thread class
class MyThread extends Thread
(
public void run()
(
System.out.println("thread is running…");
)
public static void main(String args())
(
MyThread t1=new MyThread ();
t1.start();
)
)

EXEMPLE:
By implementing Runnable interface
class MyThread implements Runnable
(
public void run()
(
System.out.println("thread is running…");
)
public static void main(String args())
(
MyThread m1=new MyThread ();
Thread t1 =new Thread(m1);
t1.start();
)
)

REMARQUE: veuillez tenir compte de la différence dans les deux exemples ci-dessus. La principale différence dans les deux exemples ci-dessus est que si nous n'étendons pas Thread, nous essayons plutôt de créer Thread en implémentant l'interface Runnable et classons la méthode start () pour démarrer Thread, alors Tread ne sera pas créé dans une nouvelle pile d'appels. car il ne sera pas identifié comme un fil.

Donc, pour le faire identifier en tant que Thread, nous devons passer l'instance de la classe où nous avons implémenté l'interface Runnable en tant qu'argument au constructeur de la classe Thread, puis nous devons appeler la méthode start ().

Planification dans le fil:

Comme ils le savent tous, ce calendrier signifie faire un plan d'une tâche à un moment donné.

La planification des threads est un mécanisme similaire de planification d'un thread particulier qui gère certains protocoles. Il existe deux façons différentes par lesquelles la planification des threads fonctionne en Java.

  • Planification préventive
  • Tranche de temps.

Planification préventive:

JMV décide de la tâche de priorité la plus élevée et commence son exécution jusqu'à ce qu'il entre dans les états d'attente ou mort ou qu'une tâche de priorité plus élevée soit créée.

Tranche de temps:

La machine virtuelle Java commence à exécuter un thread particulier pendant une période de temps spécifique, puis déplace le même thread vers le pool et choisit un autre thread en fonction de la priorité et d'autres facteurs pour les exécutions. Ce processus se poursuit jusqu'à ce que tout le thread termine son processus.

Maintenant, si vous recherchez un emploi lié au multithreading Java, vous devez vous préparer aux questions d'entrevue Java 2018 sur le multithreading. Il est vrai que chaque entretien est différent selon les différents profils d'emploi. Ici, nous avons préparé les importantes questions et réponses d'entrevue Java sur le multithreading qui vous aideront à réussir votre entrevue.

Dans cet article 2018 Java Interview Questions on Multithreading, nous présenterons les 10 questions d'entretien Java les plus importantes et les plus fréquemment posées sur le multithreading. Ces questions d'entrevue sont divisées en deux parties:

Partie 1 - Questions d'entrevue Java sur le multithreading (de base)

Cette première partie couvre les questions et réponses d'entrevue Java de base sur le multithreading.

Q1. Faire la différence entre le processus et le fil?

Répondre:
Un processus est un programme ou une application tandis que Thread est une tâche unique à exécuter dans un processus. Le fil est léger tandis que le processus est lourd. Le fil nécessite moins alors que le processus nécessite plus de ressources, il est donc qualifié de lourdement pondéré.

Q2. Faire la différence entre le thread utilisateur et le thread démon?

Répondre:
Un thread créé en java est appelé Thread utilisateur. Un thread démon s'exécute toujours en arrière-plan et son cycle de vie complet dépend du thread principal. Un thread démon exécuté en arrière-plan n'empêchera pas JVM de le terminer. Le thread enfant créé à partir d'un thread démon sera également un thread démon.

Passons aux prochaines questions d'entrevue Java sur le multithreading.

Q3. La manière différente de créer un Thread en Java?

Répondre:
Les threads en Java peuvent être créés de deux manières:

  • En étendant la classe de threads.
  • En mettant en œuvre l'interface exécutable.

Q4. Quel est le cycle de vie de Thread?

Répondre:
Il s'agit des questions d'entrevue Java courantes sur le multithreading posées dans une interview. Voici le cycle de vie d'un fil:

  • Nouveau
  • Exécutable.
  • Fonctionnement.
  • Bloqué.
  • Terminé.

Q5. Que se passe-t-il si nous appelons la méthode run () d'une classe Thread?

Répondre:
L'appel direct de la méthode run () compilera et exécutera le programme avec succès mais le même programme ne sera pas traité comme Thread car aucune nouvelle pile d'appels ne sera créée et le programme commencera son exécution dans la même pile d'appels où le main s'exécute.

Pour créer Thread qui doit s'exécuter avec une nouvelle pile d'appels, il faut utiliser la méthode start () de la classe Thread.

Partie 2 - Questions d'entrevue Java sur le multithreading (avancé)

Jetons maintenant un coup d'œil aux questions et réponses avancées d'entrevue Java sur le multithreading.

Q6. Pouvons-nous suspendre l'exécution d'un Thread à un moment précis?

Répondre:
Oui, cela peut être réalisé en java en appelant sleep () de la classe Thread. La méthode Sleep () prend également un argument qui indique le temps en millisecondes.

Q7. Comment pouvons-nous réaliser la planification des threads en Java?

Répondre:
Oui, la planification des threads en java est possible. Les threads en Java peuvent être planifiés de deux manières, à savoir le découpage temporel et la planification préemptive.

Passons aux prochaines questions d'entrevue Java sur le multithreading.

Q8. Un thread peut-il être démarré deux fois?

Répondre:
Non, un thread ne peut pas être démarré deux fois. Si nous essayons de démarrer un thread deux fois, il lèvera «java.lang.IllegalThreadStateException».

Q9. Qu'est-ce que le hook d'arrêt en Java?

Répondre:
Ce sont les questions d'entrevue Java les plus populaires sur le multithreading posées dans une interview. Un hook d'arrêt est un mécanisme utilisé pour nettoyer les ressources lorsque la machine virtuelle Java s'arrête normalement ou brusquement.

Q10. Qu'est-ce qui est volatile?

Répondre:
Volatile est un mot-clé en java et il peut être utilisé avec des variables. Si une variable est déclarée volatile, tous les threads liront la valeur de la même variable dans la mémoire principale plutôt que dans le cache, ce qui empêche la lecture d'erreur lorsque plusieurs threads utilisent la même variable dans leurs opérations.

Articles recommandés

Ceci a été un guide pour la liste des questions d'entrevue Java et des réponses sur le multithreading afin que le candidat puisse réprimer facilement ces questions d'entrevue Java sur le multithreading. Ici, dans cet article, nous avons étudié les meilleures questions d'entrevue Java sur le multithreading qui sont souvent posées lors des entretiens. Vous pouvez également consulter les articles suivants pour en savoir plus -

  1. Questions d'entretiens chez Data Structure Java
  2. Questions d'entretiens chez Oops Java
  3. Questions d'entretiens chez Multithreading à Java
  4. Questions d'entretiens chez Java Testing