Différence entre Runnable et Thread

Table des matières:

Différence entre Runnable et Thread
Différence entre Runnable et Thread

Vidéo: Différence entre Runnable et Thread

Vidéo: Différence entre Runnable et Thread
Vidéo: Thread et Runnable java 2024, Novembre
Anonim

Différence clé - Runnable vs Thread

Un programme en cours d'exécution est appelé un processus. Le processus peut être divisé en plusieurs sous-processus. Par exemple, Microsoft Word est un processus. En même temps, il vérifie les fautes d'orthographe et de grammaire. C'est un sous-processus. Ces sous-processus sont appelés threads. Le multithreading est le processus d'exécution simultanée de plusieurs threads. 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 Runnable 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.

Qu'est-ce que Runnable ?

Un thread passe par certains états. Le "nouveau" est le début du cycle de vie du thread. Après que la méthode start() appelle un nouveau thread, il devient exécutable. Si le planificateur de thread sélectionne le thread, il passe à l'état 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 terminaison.

Un thread peut être implémenté en utilisant l'interface Runnable. Reportez-vous au programme ci-dessous.

Différence entre exécutable et thread
Différence entre exécutable et thread

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 en utilisant t1.

Référez-vous au programme ci-dessous.

Différence entre exécutable et Thread_Figure 02
Différence entre exécutable et Thread_Figure 02

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 contient 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 initier l'exécution du thread. Reportez-vous au programme ci-dessous.

Différence entre exécutable et Thread_Figure 03
Différence entre exécutable et Thread_Figure 03

Figure 03: Programme Java qui étend la classe Thread

Selon le programme ci-dessus, la classe MyThread étend la classe Thread. Elle remplace la méthode run. 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 le fil1. 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.

Différence clé entre exécutable et thread
Différence clé entre exécutable et thread

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 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 une sortie. Une fois le thread démarré, il est difficile de décider de l'ordre dans lequel ils seront exécutés. 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 ?

Runnable vs Thread

Runnable est une interface en Java pour créer un thread qui permet à plusieurs threads de partager le même objet thread. Le thread est une classe en Java pour créer un thread où chaque thread a un objet unique qui lui est associé.
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, donc nécessite plus de mémoire.
Étendre 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 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 a un objet unique qui lui est associé. C'est la différence entre Runnable et Thread. Dans la classe Thread, la création d'objets multiples peut consommer plus de mémoire.

Télécharger le PDF de Runnable vs Thread

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

Conseillé: