logo

Java Thread start() metóda

The začať () metóda triedy vlákna sa používa na začatie vykonávania vlákna. Výsledkom tejto metódy sú dve vlákna, ktoré bežia súbežne: aktuálne vlákno (ktoré sa vracia z volania na metódu štart) a druhé vlákno (ktoré vykonáva svoju metódu spustenia).

Metóda start() interne volá metódu run() rozhrania Runnable na vykonanie kódu špecifikovaného v metóde run() v samostatnom vlákne.

Počiatočné vlákno vykonáva nasledujúce úlohy:

  • Uvádza nové vlákno
  • Vlákno sa presunie z New State do Runnable stavu.
  • Keď vlákno dostane príležitosť na spustenie, spustí sa jeho cieľová metóda run().

Syntax

 public void start() 

Návratová hodnota

 It does not return any value. 

Výnimka

IllegalThreadStateException - Táto výnimka sa vyvolá, ak sa metóda start() volá viac ako raz.

Príklad 1: Rozšírením triedy vlákien

 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(); } } 
Vyskúšajte to

Výkon:

 Thread is running... 

Príklad 2: Implementáciou Runnable Interface

 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(); } } 
Vyskúšajte to

Výkon:

 Thread is running... 

Príklad 3: Keď zavoláte metódu start() viac ako raz

 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(); } } 
Vyskúšajte to

Výkon:

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