Maison >Java >javaDidacticiel >Runnable run() vs Thread start() : quelle est la différence clé ?
Runnable run() vs Thread start()
Question :
En simultané En programmation Java, l'interface Runnable définit une méthode run() qui est le point d'entrée d'une tâche. De même, la classe Thread possède une méthode start() qui lance un nouveau thread d’exécution. Quelle est la principale différence entre ces deux méthodes ?
Réponse :
La distinction fondamentale réside dans la création et l'exécution du thread :
Exécution exécutable () : Aucune création de thread
Thread start() : Création de fil
Exemple :
Considérons deux classes, R1 et R2, implémentant l'interface Runnable :class R1 implements Runnable { public void run() { ... } } class R2 implements Runnable { public void run() { ... } }Dans l'extrait de code suivant, r1.run() et r2.run() sont invoqués directement, ce qui signifie qu'aucun nouveau thread n'est créé :
public static void main() { R1 r1 = new R1(); R2 r2 = new R2(); r1.run(); r2.run(); }En revanche, le code suivant crée deux nouveaux threads, t1 et t2, et démarre eux :
public static void main() { R1 r1 = new R1(); R2 r2 = new R2(); Thread t1 = new Thread(r1); Thread t2 = new Thread(r2); t1.start(); t2.start(); }Dans ce code, les tâches associées à r1 et r2 seront exécutées simultanément au sein des threads nouvellement créés.
Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!