Maison > Java > javaDidacticiel > Run() vs start() dans Java Threads : quelle est la différence dans le comportement multithreading ?

Run() vs start() dans Java Threads : quelle est la différence dans le comportement multithreading ?

Mary-Kate Olsen
Libérer: 2024-12-21 18:36:12
original
588 Les gens l'ont consulté

Run() vs. start() in Java Threads: What's the Difference in Multithreading Behavior?

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();
}
Copier après la connexion
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();
}
Copier après la connexion

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 :

  • Création de thread : start() crée un nouveau thread, tandis que run() exécute le Runnable dans le thread appelant.
  • Contexte d'exécution : start() exécute le Runnable dans un thread indépendant nouvellement créé, fournissant une véritable exécution parallèle. run() exécute le Runnable dans le thread appelant, limitant la concurrence.

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!

source:php.cn
Déclaration de ce site Web
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn
Derniers articles par auteur
Tutoriels populaires
Plus>
Derniers téléchargements
Plus>
effets Web
Code source du site Web
Matériel du site Web
Modèle frontal