logo

Metoda Java Thread start().

The start() metoda clasei thread este folosită pentru a începe execuția thread-ului. Rezultatul acestei metode sunt două fire de execuție care rulează concomitent: firul de execuție curent (care revine de la apelul la metoda de pornire) și celălalt fir de execuție (care își execută metoda de rulare).

Metoda start() apelează intern metoda run() a interfeței Runnable pentru a executa codul specificat în metoda run() într-un fir separat.

Firul de pornire îndeplinește următoarele sarcini:

  • Afișează un thread nou
  • Firul se mută de la starea nouă la starea de rulare.
  • Când firul de execuție are șansa de a se executa, se va rula metoda run() țintă.

Sintaxă

 public void start() 

Valoare returnată

 It does not return any value. 

Excepție

IllegalThreadStateException - Această excepție apare dacă metoda start() este apelată de mai multe ori.

Exemplul 1: Prin extinderea clasei 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(); } } 
Testează-l acum

Ieșire:

 Thread is running... 

Exemplul 2: Prin implementarea interfeței rulabile

 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(); } } 
Testează-l acum

Ieșire:

 Thread is running... 

Exemplul 3: Când apelați metoda start() de mai multe ori

 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(); } } 
Testează-l acum

Ieșire:

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