English | 简体中文 | 繁體中文 | Русский язык | Français | Español | Português | Deutsch | 日本語 | 한국어 | Italiano | بالعربية
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éro | Clé | Li | Exé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. |
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(); {} {}
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(); {} {}