logo

Metodo Java Thread start()

IL inizio() il metodo della classe thread viene utilizzato per iniziare l'esecuzione del thread. Il risultato di questo metodo sono due thread eseguiti contemporaneamente: il thread corrente (che ritorna dalla chiamata al metodo start) e l'altro thread (che esegue il suo metodo run).

Il metodo start() chiama internamente il metodo run() dell'interfaccia Runnable per eseguire il codice specificato nel metodo run() in un thread separato.

Il thread iniziale esegue le seguenti attività:

  • Si apre un nuovo thread
  • Il thread passa dallo stato Nuovo allo stato Eseguibile.
  • Quando il thread avrà la possibilità di essere eseguito, verrà eseguito il suo metodo run() di destinazione.

Sintassi

 public void start() 

Valore di ritorno

 It does not return any value. 

Eccezione

IllegalThreadStateException - Questa eccezione viene generata se il metodo start() viene chiamato più di una volta.

Esempio 1: estendendo la classe 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(); } } 
Provalo adesso

Produzione:

 Thread is running... 

Esempio 2: implementando l'interfaccia eseguibile

 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(); } } 
Provalo adesso

Produzione:

 Thread is running... 

Esempio 3: quando chiami il metodo start() più di una volta

 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(); } } 
Provalo adesso

Produzione:

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