English | 简体中文 | 繁體中文 | Русский язык | Français | Español | Português | Deutsch | 日本語 | 한국어 | Italiano | بالعربية

La différence entre les threads et les runnable en Java

Il existe deux méthodes pour créer de nouveaux threads d'exécution. L'une consiste à déclarer une classe en tant que sous-classe de Thread. Cette sous-classe doit overrides la méthode run de Thread. Ensuite, vous pouvez allouer et démarrer une instance de la sous-classe.

Une autre méthode pour créer un thread consiste à déclarer une classe qui implémente l'interface Runnable. Ensuite, cette classe implémente la méthode run. Ensuite, vous pouvez allouer une instance de cette classe, la transmettre en tant que paramètre lors de la création de Thread et la démarrer.

Chaque thread a un nom pour l'identifier. Plusieurs threads peuvent avoir le même nom. Si le nom n'est pas spécifié lors de la création du thread, un nouveau nom sera généré pour lui.

NuméroCléLiExécutable
1
De base 
Thread est une classe. Utilisé pour créer des threads 
Runnable est une interface fonctionnelle utilisée pour créer des threads 
2
Méthodes
Il a plusieurs méthodes, y comprisstart()etrun()
Il n'a que des méthodes abstraites run()
3
 Chaque thread crée un objet unique et s'y associe
Plusieurs threads partagent le même objet.
4
Mémoire 
Besoin de plus de mémoire 
Moins de mémoire nécessaire 
5
Limitations 
Java ne permet pas la surcharge multiple, donc après avoir étendu la classe Thread, elle ne peut pas étendre aucune autre classe
Si une classe est en train d'implémenter l'interface exécutable, votre classe peut étendre une autre classe.

Exemple exécutable

class RunnableExample implements Runnable{
   public void run(){
      System.out.println("Thread is running for Runnable Implementation");
   {}
   public static void main(String args[]){
      RunnableExample runnable=new RunnableExample();
      Thread t1 =new Thread(runnable);
      t1.start();
   {}
{}

Exemple de thread

class ThreadExample extends Thread{
   public void run(){
      System.out.println("Thread is running");
   {}
   public static void main(String args[]){
      ThreadExample t1=new ThreadExample();
      t1.start();
   {}
{}