Différence entre l’interface Runnable et la classe Thread en java

Quelle est la différence entre Runnable et Thread ? – En Java, comme nous le savons tous, il existe deux manières pour créer des threads. L’un en héritant la classe Thread et l’autre en utilisant l’interface Runnable.
 
 
Dans la première approche, notre classe étend toujours la classe Thread. Il n’y a aucune chance d’étendre une autre classe. Par conséquent, nous manquons l’héritage. Dans la deuxième approche, tout en implémentant l’interface Runnable, nous pouvons étendre toute autre classe. Par conséquent, nous pouvons utiliser les avantages de l’héritage.

Pour les raisons ci-dessus, il est recommandé d’implémenter l’interface Runnable plutôt que d’étendre la classe Thread.
QCM-JavaQCM Java – Programmation Orientée ObjetQCM sur Java avec des réponses pour la préparation des entretiens d’embauche, des tests en ligne, aux examens et aux certifications. Ces questions et réponses…Lire plus

Définition de l’interface Runnable

Runnable est une interface qui se trouve dans le package java.lang. Nous pouvons définir un thread en implémentant l’interface Runnable. L’interface Runnable possède une seule méthode, run(), qui est implémentée par la classe qui implémente l’interface Runnable. Lorsque vous choisissez de définir un thread implémentant une interface Runnable, vous aurez le choix d’hériter d’autre classe. Lorsque vous créez plusieurs threads en implémentant l’interface Runnable, chaque thread partage la même instance de Runnable.

Programme Java pour créer un thread en implémentant l’interface Runnable.

// Définir notre thread 
class MyRunnablethread implements Runnable{
       // taches du thread 
       public void run(){
              for(int i=0; i<10; i++){
                     System.Out.Println("Thread Fil");
              }
       }
}

class TestThread{
       // taches du thread princial  
      public static void main(String args[]){
            // Le thread principal a créé le thread fil 
            MyRunnablethread rth = new MyRunnablethread ();
            // le thread principal crée le thread fil et transmet l'objet runnable  
            Thread t = new Thread(rth);
            t.start();
            for(int i=0; i<10; i++){
                  System.Out.Print("Thread Princial");
            }
      }
}

// La Sortie 
Thread Princial
Thread Fil
Thread Fil
Thread Fil
Thread Princial
Thread Princial
Thread Princial
Thread Fil
Thread Fil
Thread Fil
Thread Fil
Thread Princial
Thread Princial
Thread Princial
Thread Princial
Thread Fil
Thread Fil
Thread Princial
Thread Princial
Thread Fil
QCM-JavaQCM Java – Les tableaux(Arrays)QCM sur Java avec des réponses pour la préparation des entretiens d’embauche, des tests en ligne, aux examens et aux certifications. Ces questions et réponses…Lire plus

 

Définition de la classe Thread

Thread est une classe qui se trouve dans le package java.lang. La classe Thread étend la classe Object et implémente des interfaces Runnable. La classe Thread a des constructeurs et des méthodes pour créer et opérer sur le thread. Lorsque on crée plusieurs threads, chaque thread crée un objet unique et est associé à cet objet. Si vous créez un thread qui étend la classe Thread, vous ne pouvez pas étendre d’autres classes car Java ne prend pas en charge l’héritage multiple. Vous devez donc choisir d’étendre la classe Thread uniquement lorsque vous souhaitez remplacer d’autres méthodes de la classe Thread.

Programme Java pour créer un thread en héritant la classe Thread.

// Définir notre thread 
class Mythread extends Thread{
       // taches du thread 
       public void run(){
              for(int i=0; i<10; i++){
                     System.Out.Println("Thread Fil");
              }
       }
}

class TestThread{
       // taches du thread princial  
      public static void main(String args[]){
            // Le thread principal a créé le thread fil 
            Mythread t = new Mythread();
            t.start();
            for(int i=0; i<10; i++){
                  System.Out.Print("Thread Princial");
            }
      }
}

// La Sortie 
Thread Princial
Thread Fil
Thread Fil
Thread Fil
Thread Princial
Thread Princial
Thread Princial
Thread Fil
Thread Fil
Thread Fil
Thread Fil
Thread Princial
Thread Princial
Thread Princial
Thread Princial
Thread Fil
Thread Fil
Thread Princial
Thread Princial
Thread Fil
QCM-JavaQCM java J2EE corrigéQCM sur java J2EE avec des réponses pour la préparation des entretiens d’embauche, des tests en ligne, aux examens et aux certifications. Ces questions et…Lire plus
Table de comparaison
ThreadRunnable
PrésentationChaque thread crée un objet unique et s’y associe.Plusieurs threads partagent les mêmes objets.
L’utilisationUn utilisateur doit étendre la classe Thread uniquement s’il souhaite surcharger les méthodes de la classe Thread.Si vous voulez seulement la méthode run(), l’implémentation de Runnable est un meilleure choix.
Le couplageÉtendre la classe Thread introduit un couplage fort car la classe contient du code de la classe Thread et également le travail affecté au threadL’implémentation de l’interface Runnable introduit un couplage faible car le code de Thread est séparé du travail de threads.
La mémoireComme chaque thread crée un objet unique, plus de mémoire est requise.Comme plusieurs threads partagent le même objet, moins de mémoire est utilisée.
Conclusion

Utiliser l’interface Runnable est un meilleur choix dans la plupart des cas. Cela signifie que la composition est une meilleure solution.
 
 

Partagez cet article

Laisser un commentaire

Votre adresse de messagerie ne sera pas publiée. Les champs obligatoires sont indiqués avec *