Différence clé - Exécutable vs Thread
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. En 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 créées à l'aide de 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 exécutable ou en étendant la classe Thread. Lors de l'implémentation de Runnable, de nombreux threads peuvent partager le même objet thread tandis que dans la classe Extending Thread, chaque thread est associé à un objet unique. C'est la principale différence entre Runnable et Thread.
CONTENU
1. Présentation et différence clé
2. Qu'est-ce que Runnable
3. Qu'est-ce que Thread
4. Similitudes entre Runnable et Thread
5. Comparaison côte à côte - Runnable vs Thread sous forme tabulaire
6. Résumé
Qu'est-ce que Runnable?
Un fil passe par certains états. Le «nouveau» est le début du cycle de vie du fil. Une fois que la méthode start () appelle 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 exécute 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. Référez-vous au 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 () se trouve dans 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 en utilisant t1.
Référez-vous au programme ci-dessous.
Figure 02: Programme Java pour créer un thread pour 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 en utilisant t1.
Qu'est-ce que Thread?
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 étendant la classe Thread. Ensuite, la méthode run () doit être écrite. Il a la séquence d'étapes que le thread doit exécuter. Enfin, l'objet thread est créé et la méthode start () est appelée pour lancer l'exécution du thread. Référez-vous au 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 ().
Un exemple de programme de deux classes étendant la classe Thread est le suivant.
Figure 04: programme Java avec deux classes qui étendent la classe Thread
Selon le programme ci-dessus, les classes A et B étendent 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 meure, 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 sont exécutés en parallèle. Il n'y a pas d'ordre spécifique dans lequel les threads donnent la sortie. Une fois le thread démarré, il est difficile de décider de l'ordre dans lequel il s'exécutera. Ils fonctionnent indépendamment.
Quelles sont les similitudes entre Runnable et Thread?
Les deux utilisent pour créer un thread en Java
Quelle est la différence entre Runnable et Thread?
Diff article au milieu avant la table
Exécutable vs Thread |
|
Runnable est une interface en Java pour créer un thread qui permet à de nombreux threads de partager le même objet thread. | Le thread est une classe en Java pour créer un thread où chaque thread est associé à un objet unique. |
Mémoire | |
Dans Runnable, plusieurs threads partagent le même objet, donc nécessitent moins de mémoire. | Dans la classe Thread, chaque thread crée un objet unique, 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 dans Java. Après avoir étendu la classe Thread, il ne peut étendre aucune autre classe. |
Maintenabilité du code | |
L'interface exécutable rend le code plus maintenable. | Dans la classe Thread, la maintenance prend du temps. |
Résumé - Exécutable vs Thread
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 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 thread tandis que dans 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.
Téléchargez le PDF de Runnable vs Thread
Vous pouvez télécharger la version PDF de cet article et l'utiliser à des fins hors ligne selon la note de citation. Veuillez télécharger la version PDF ici Différence entre Runnable et Thread