Différence entre Thread.start() et Thread.run() en Java
Dans le concept multi-threading de Java, start() et run() sont les deux méthodes les plus importantes. Alors, quelle est la différence entre eux ? L'article suivant vous présentera les méthodes start() et run() et présentera les différences entre elles. J'espère qu'il vous sera utile.
La méthode start() en Java
La méthode start() de la classe thread peut être utilisé Démarrez un thread ; cette méthode appelle en interne la méthode run() de l'interface Runnable pour exécuter le code spécifié dans la méthode run() dans un thread séparé. [Recommandation du didacticiel vidéo : Tutoriel Java]
La méthode start() démarre le fil de discussion pour effectuer les tâches suivantes :
● Elle compte un nouveau fil de discussion
● Le thread passe de l'état New à l'état Runnable.
● Lorsqu'un thread a une chance de s'exécuter, sa méthode cible run() s'exécutera.
La méthode run() en Java
La méthode run() de la classe thread est une méthode abstraite de l'interface Runnable, contrôlée par la machine virtuelle Java S'il est appelé directement, aucun nouveau thread ne sera créé.
La différence entre la méthode start() et la méthode run()
Définition de la méthode
La méthode start() est définie dans la classe java.lang.Thread ; et la méthode run() est définie dans l'interface java.lang.Runnable et doit être réécrite dans la classe d'implémentation.
2. Création d'un nouveau thread
Lorsque le programme appelle la méthode start(), un nouveau thread sera créé puis la méthode run() sera exécutée. Mais si nous appelons directement la méthode run(), aucun nouveau thread ne sera créé, la méthode run() sera exécutée comme un appel de méthode régulier du thread appelant actuel lui-même, et aucun multithreading ne se produira.
Exemple :
class MyThread extends Thread { public void run() { System.out.println("\n"); System.out.println("当前线程的名称: " + Thread.currentThread().getName()); System.out.println("run()方法调用"); } } class demo { public static void main(String[] args) { MyThread t = new MyThread(); t.start(); } }
Sortie :
Comme nous pouvons le voir dans l'exemple ci-dessus, lorsque nous appelons le fil de discussion Lors de l'appel la méthode start() d'une instance de classe, un nouveau thread sera créé avec le nom par défaut Thread-0, puis la méthode run() sera appelée et tout y sera exécuté. Sujet nouvellement créé.
Maintenant, essayons d'appeler la méthode run() directement au lieu de la méthode start() :
class MyThread extends Thread { public void run() { System.out.println("\n"); System.out.println("当前线程的名称: " + Thread.currentThread().getName()); System.out.println("run()方法调用"); } } class GeeksforGeeks { public static void main(String[] args) { MyThread t = new MyThread(); t.run(); } }
Sortie :
Comme nous l'avons vu dans l'exemple ci-dessus, lorsque l'on appelle la méthode run() de la classe MyThread, aucun nouveau thread n'est créé et la méthode run() est exécutée sur le thread courant c'est à dire le thread principal. Par conséquent, aucun multithreading ne se produit. La méthode run() est appelée comme une fonction normale.
3. Appels multiples
La méthode start() ne peut pas être appelée plusieurs fois, sinon une java.lang.IllegalStateException sera levée cependant, la méthode run() ; La méthode peut être appelée plusieurs fois car il s’agit simplement d’un appel de méthode normal.
Ce qui précède représente l’intégralité du contenu de cet article, j’espère qu’il sera utile à l’étude de chacun. Pour un contenu plus passionnant, vous pouvez prêter attention aux colonnes de didacticiels pertinentes du site Web PHP chinois ! ! !
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!

Outils d'IA chauds

Undresser.AI Undress
Application basée sur l'IA pour créer des photos de nu réalistes

AI Clothes Remover
Outil d'IA en ligne pour supprimer les vêtements des photos.

Undress AI Tool
Images de déshabillage gratuites

Clothoff.io
Dissolvant de vêtements AI

AI Hentai Generator
Générez AI Hentai gratuitement.

Article chaud

Outils chauds

Bloc-notes++7.3.1
Éditeur de code facile à utiliser et gratuit

SublimeText3 version chinoise
Version chinoise, très simple à utiliser

Envoyer Studio 13.0.1
Puissant environnement de développement intégré PHP

Dreamweaver CS6
Outils de développement Web visuel

SublimeText3 version Mac
Logiciel d'édition de code au niveau de Dieu (SublimeText3)

Guide du nombre parfait en Java. Nous discutons ici de la définition, comment vérifier le nombre parfait en Java ?, des exemples d'implémentation de code.

Guide du générateur de nombres aléatoires en Java. Nous discutons ici des fonctions en Java avec des exemples et de deux générateurs différents avec d'autres exemples.

Guide de Weka en Java. Nous discutons ici de l'introduction, de la façon d'utiliser Weka Java, du type de plate-forme et des avantages avec des exemples.

Guide du nombre de Smith en Java. Nous discutons ici de la définition, comment vérifier le numéro Smith en Java ? exemple avec implémentation de code.

Dans cet article, nous avons conservé les questions d'entretien Java Spring les plus posées avec leurs réponses détaillées. Pour que vous puissiez réussir l'interview.

Java 8 présente l'API Stream, fournissant un moyen puissant et expressif de traiter les collections de données. Cependant, une question courante lors de l'utilisation du flux est: comment se casser ou revenir d'une opération FOREAK? Les boucles traditionnelles permettent une interruption ou un retour précoce, mais la méthode Foreach de Stream ne prend pas directement en charge cette méthode. Cet article expliquera les raisons et explorera des méthodes alternatives pour la mise en œuvre de terminaison prématurée dans les systèmes de traitement de flux. Lire plus approfondie: Améliorations de l'API Java Stream Comprendre le flux Forach La méthode foreach est une opération terminale qui effectue une opération sur chaque élément du flux. Son intention de conception est

Guide de TimeStamp to Date en Java. Ici, nous discutons également de l'introduction et de la façon de convertir l'horodatage en date en Java avec des exemples.

Les capsules sont des figures géométriques tridimensionnelles, composées d'un cylindre et d'un hémisphère aux deux extrémités. Le volume de la capsule peut être calculé en ajoutant le volume du cylindre et le volume de l'hémisphère aux deux extrémités. Ce tutoriel discutera de la façon de calculer le volume d'une capsule donnée en Java en utilisant différentes méthodes. Formule de volume de capsule La formule du volume de la capsule est la suivante: Volume de capsule = volume cylindrique volume de deux hémisphères volume dans, R: Le rayon de l'hémisphère. H: La hauteur du cylindre (à l'exclusion de l'hémisphère). Exemple 1 entrer Rayon = 5 unités Hauteur = 10 unités Sortir Volume = 1570,8 unités cubes expliquer Calculer le volume à l'aide de la formule: Volume = π × r2 × h (4
