Run() vs start() dans Threading : une explication complète
Dans la programmation multithread, comprendre efficacement les distinctions entre Thread.run () et Runnable.run() est crucial.
Question :
Considérez les extraits de code suivants :
public static void main() { R1 r1 = new R1(); R2 r2 = new R2(); r1.run(); r2.run(); }
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(); }
Réponse :
Premier exemple : non Multithreading
Dans le premier extrait, r1.run() et r2.run() sont exécutés directement sans créer de nouveaux threads. Par conséquent, R1 et R2 sont exécutés séquentiellement dans le thread principal.
Deuxième exemple : multithreading
Dans le deuxième extrait, les objets Thread (t1 et t2) sont créés pour encapsuler les instances R1 et R2, respectivement. Lorsque t1.start() et t2.start() sont invoqués, de nouveaux threads sont lancés, chacun exécutant la méthode run() de l'implémentation Runnable correspondante simultanément en parallèle avec le thread principal.
Clé Différences :
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!