logo

Méthode Java Thread start()

Le commencer() La méthode de la classe thread est utilisée pour commencer l’exécution du thread. Le résultat de cette méthode est deux threads qui s'exécutent simultanément : le thread actuel (qui revient de l'appel à la méthode start) et l'autre thread (qui exécute sa méthode run).

La méthode start() 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é.

Le thread de démarrage effectue les tâches suivantes :

  • Il crée un nouveau fil de discussion
  • Le thread passe de l’état Nouvel à l’état Exécutable.
  • Lorsque le thread a la possibilité de s'exécuter, sa méthode cible run() s'exécutera.

Syntaxe

 public void start() 

Valeur de retour

 It does not return any value. 

Exception

IllegalThreadStateException - Cette exception est levée si la méthode start() est appelée plusieurs fois.

Exemple 1 : en étendant la classe de thread

 public class StartExp1 extends Thread { public void run() { System.out.println('Thread is running...'); } public static void main(String args[]) { StartExp1 t1=new StartExp1(); // this will call run() method t1.start(); } } 
Testez-le maintenant

Sortir:

 Thread is running... 

Exemple 2 : en implémentant une interface exécutable

 public class StartExp2 implements Runnable { public void run() { System.out.println('Thread is running...'); } public static void main(String args[]) { StartExp2 m1=new StartExp2 (); Thread t1 =new Thread(m1); // this will call run() method t1.start(); } } 
Testez-le maintenant

Sortir:

 Thread is running... 

Exemple 3 : lorsque vous appelez la méthode start() plusieurs fois

 public class StartExp3 extends Thread { public void run() { System.out.println('First thread running...'); } public static void main(String args[]) { StartExp3 t1=new StartExp3(); t1.start(); // It will through an exception because you are calling start() method more than one time t1.start(); } } 
Testez-le maintenant

Sortir:

 First thread running... Exception in thread 'main' java.lang.IllegalThreadStateException at java.lang.Thread.start(Thread.java:708) at StartExp3.main(StartExp3.java:12)