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-Java

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-Java

Laisser un commentaire

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