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)