Un programme en cours d'exécution est appelé processus. Le processus peut être divisé en plusieurs sous-processus. Par exemple, Microsoft Word est un processus. Dans le même temps, il vérifie la faute d'orthographe et la grammaire. C'est un sous-processus. Ces sous-processus sont appelés threads. Le multithreading est le processus d'exécution de plusieurs threads simultanément. Les applications threadées peuvent être construites en utilisant différents langages de programmation. Runnable et Thread sont associés à la programmation Java. Il existe deux méthodes en Java pour créer un thread en implémentant une interface Runnable ou en étendant la classe Thread.. Lors de l'implémentation de Runnable, de nombreux threads peuvent partager le même objet de thread dans la classe Extending Thread. Chaque thread est associé à un objet unique.. C'est le différence clé entre Runnable et Thread.
1. Vue d'ensemble et différence clé
2. Qu'est-ce que Runnable?
3. Quel est le fil
4. Similarités entre Runnable et Thread
5. Comparaison côte à côte - Runnable vs Thread sous forme tabulaire
6. Résumé
Un fil passe par certains états. Le «nouveau» est le début du cycle de vie du thread. Une fois que la méthode start () a appelé sur un nouveau thread, elle devient exécutable. Si le planificateur de threads sélectionne le thread, il passe à l'état en cours d'exécution. Le thread attend l'état si ce thread attend qu'un autre thread effectue une tâche. Une fois que le thread a terminé le travail, il passe à l'état de fin..
Un thread peut être implémenté à l'aide de l'interface Runnable. Voir le programme ci-dessous.
Figure 01: Programme Java pour créer un thread à l'aide de l'interface Runnable
Selon le programme ci-dessus, la classe Runnable Demo implémente l'interface Runnable. La méthode run () est à l'intérieur de la classe qui implémente l'interface Runnable. C'est le point d'entrée du fil. La logique est dans la méthode run (). Dans le programme principal, un thread est créé en définissant un objet instancié à partir de la classe Runnable Demo. C'est t1. La méthode start () est appelée à l'aide de t1.
Voir le programme ci-dessous.
Figure 02: programme Java pour créer un thread permettant d'exécuter une boucle en implémentant l'interface Runnable
Selon l'exemple ci-dessus, la classe Runnable Demo implémente l'interface Runnable. La logique à exécuter à l'aide du thread est écrite dans la méthode run (). Dans le programme principal, un thread est créé en définissant un objet instancié à partir de la classe Runnable Demo. C'est t1. Ensuite, la méthode start () est appelée à l'aide de t1.
L'autre méthode de création d'un thread consiste à étendre la classe Thread. Il se compose de trois étapes. La première consiste à déclarer la classe comme extension de la classe Thread. Ensuite, la méthode run () devrait être écrite. Il a la séquence d'étapes que le thread devrait exécuter. Enfin, l'objet thread est créé et la méthode start () est appelée pour lancer l'exécution du thread. Voir le programme ci-dessous.
Figure 03: programme Java qui étend la classe Thread
Selon le programme ci-dessus, la classe MyThread étend la classe Thread. Il remplace la méthode d'exécution. La méthode run () contient la logique à exécuter par le thread. C'est le point d'entrée du fil. Ensuite, l'objet thread est créé. C'est thread1. Le thread est démarré à l'aide de la méthode start (). Il exécutera un appel à la méthode run ().
Voici un exemple de programme de deux classes étendant la classe Thread.
Figure 04: programme Java avec deux classes qui étendent la classe Thread
Selon le programme ci-dessus, les classes A et B étendent toutes les deux la classe Thread. Les deux classes ont leur implémentation de la méthode run (). Le thread principal est celui qui exécute la méthode main (). Avant que le thread principal ne meurt, il crée et démarre thread1 et thread2. Au moment où le thread principal a atteint la fin de la méthode principale, trois threads s'exécutent en parallèle. Il n'y a pas d'ordre spécifique dans lequel les threads donnent la sortie. Une fois le fil démarré, il est difficile de décider de l'ordre d'exécution. Ils courent indépendamment.
Runnable vs Thread | |
Runnable est une interface en Java permettant de créer un thread permettant à plusieurs threads de partager le même objet thread.. | Le thread est une classe en Java pour créer un thread où chaque objet est associé à un objet unique.. |
Mémoire | |
Dans Runnable, plusieurs threads partagent le même objet, ils nécessitent donc moins de mémoire.. | Dans la classe Thread, chaque thread crée un objet unique et nécessite donc plus de mémoire.. |
Extension de la capacité | |
Après avoir implémenté l’interface Runnable, il peut étendre une classe. | Les héritages multiples ne sont pas pris en charge en Java. Après l'extension de la classe Thread, il ne peut étendre aucune autre classe.. |
Maintenabilité du code | |
L'interface exécutable rend le code plus facile à gérer. | Dans la classe Thread, la maintenance prend beaucoup de temps. |
Un processus est divisé en plusieurs sous-processus pour effectuer plusieurs tâches en même temps. Ces sous-processus sont appelés threads. L'instanciation d'un thread peut être effectuée en implémentant l'interface Runnable ou en étendant la classe de thread. Il est facile d’étendre la classe Thread, mais ce n’est pas une meilleure pratique de programmation orientée objet. Lors de l'implémentation de Runnable, de nombreux threads peuvent partager le même objet de thread. Lors de l'extension de la classe Thread, chaque thread est associé à un objet unique. C'est la différence entre Runnable et Thread. Dans la classe Thread, la création de plusieurs objets peut consommer plus de mémoire.
Vous pouvez télécharger la version PDF de cet article et l'utiliser à des fins hors ligne, conformément à la note de citation. Veuillez télécharger la version PDF ici Différence entre Runnable et Thread
1.tutorialspoint.com. "Multithreading Java." Le point, Disponible ici
2.Pramodbablad. «Extension de Thread Vs Implements Runnable en Java.» Le concept Java du jour, 11 nov. 2016. Disponible ici
3. Comment créer un thread en multithreading Java | Tutoriel Java de base | Studytonight. Disponible ici