logo

Fils Java | Comment créer un fil de discussion en Java

Il existe deux manières de créer un fil de discussion :

  1. En étendant la classe Thread
  2. En implémentant l'interface Runnable.

Classe de fil :

La classe Thread fournit des constructeurs et des méthodes pour créer et effectuer des opérations sur un thread. La classe Thread étend la classe Object et implémente l'interface Runnable.

Constructeurs de classe Thread couramment utilisés :

  • Fil de discussion()
  • Sujet (nom de la chaîne)
  • Sujet (exécutable r)
  • Thread (Runnable r, nom de la chaîne)

Méthodes couramment utilisées de la classe Thread :

    public void run() :est utilisé pour effectuer une action pour un thread.public void start() :démarre l'exécution du thread.JVM appelle la méthode run() sur le thread.sommeil vide public (longues millisecondes) :Provoque la mise en veille du thread en cours d'exécution (cesse temporairement l'exécution) pendant le nombre de millisecondes spécifié.jointure publique vide() :attend qu'un fil meure.jointure publique vide (longues millisecondes) :attend qu'un thread meure pendant les millisecondes spécifiées.public int getPriority() :renvoie la priorité du thread.public int setPriority (priorité int):change la priorité du thread.chaîne publique getName() :renvoie le nom du fil.public void setName (nom de la chaîne) :change le nom du fil.fil public courantThread() :renvoie la référence du thread en cours d'exécution.public int getId() :renvoie l'identifiant du thread.public Thread.State getState() :renvoie l'état du thread.public booléen isAlive() :teste si le thread est vivant.rendement public vide() :provoque une pause temporaire de l'objet thread en cours d'exécution et permet à d'autres threads de s'exécuter.public void suspend() :est utilisé pour suspendre le thread (obsolète).CV vide public() :est utilisé pour reprendre le thread suspendu (obsolète).arrêt public void() :est utilisé pour arrêter le thread (obsolète).public booléen isDaemon() :teste si le thread est un thread démon.public void setDaemon (booléen b):marque le thread comme démon ou thread utilisateur.interruption publique vide() :interrompt le fil.public booléen isInterrupted() :teste si le thread a été interrompu.public statique booléen interrompu() :teste si le thread en cours a été interrompu.

Interface exécutable :

L'interface Runnable doit être implémentée par toute classe dont les instances sont destinées à être exécutées par un thread. L'interface exécutable n'a qu'une seule méthode nommée run().

raccourci tout en majuscules excel
    public void run() :est utilisé pour effectuer une action pour un thread.

Démarrer un fil de discussion :

Le méthode start() de la classe Thread est utilisée pour démarrer un thread nouvellement créé. Il effectue les tâches suivantes :

  • Un nouveau fil démarre (avec une nouvelle pile d'appels).
  • Le thread passe de l’état Nouveau à l’état Exécutable.
  • Lorsque le thread a la possibilité de s'exécuter, sa méthode cible run() s'exécutera.

1) Exemple de thread Java en étendant la classe Thread

Nom de fichier: Multi.java

 class Multi extends Thread{ public void run(){ System.out.println('thread is running...'); } public static void main(String args[]){ Multi t1=new Multi(); t1.start(); } } 

Sortir:

 thread is running... 

2) Exemple de thread Java en implémentant l'interface Runnable

Nom de fichier: Multi3.java

 class Multi3 implements Runnable{ public void run(){ System.out.println('thread is running...'); } public static void main(String args[]){ Multi3 m1=new Multi3(); Thread t1 =new Thread(m1); // Using the constructor Thread(Runnable r) t1.start(); } } 

Sortir:

 thread is running... 

Si vous n'étendez pas la classe Thread, votre objet de classe ne sera pas traité comme un objet thread. Vous devez donc créer explicitement l’objet de classe Thread. Nous transmettons l'objet de votre classe qui implémente Runnable afin que votre méthode run() de classe puisse s'exécuter.

int analyseur

3) Utilisation de la classe Thread : Thread (String Name)

Nous pouvons directement utiliser la classe Thread pour générer de nouveaux threads en utilisant les constructeurs définis ci-dessus.

Nom de fichier: MonThread1.java

 public class MyThread1 { // Main method public static void main(String argvs[]) { // creating an object of the Thread class using the constructor Thread(String name) Thread t= new Thread('My first thread'); // the start() method moves the thread to the active state t.start(); // getting the thread name by invoking the getName() method String str = t.getName(); System.out.println(str); } } 

Sortir:

Rajesh Khanna
 My first thread 

4) Utilisation de la classe Thread : Thread (Runnable r, String name)

Observez le programme suivant.

Nom de fichier: MonThread2.java

 public class MyThread2 implements Runnable { public void run() { System.out.println('Now the thread is running ...'); } // main method public static void main(String argvs[]) { // creating an object of the class MyThread2 Runnable r1 = new MyThread2(); // creating an object of the class Thread using Thread(Runnable r, String name) Thread th1 = new Thread(r1, 'My new thread'); // the start() method moves the thread to the active state th1.start(); // getting the thread name by invoking the getName() method String str = th1.getName(); System.out.println(str); } } 

Sortir:

 My new thread Now the thread is running ...