logo

Java Thread start()-methode

De begin() methode van threadklasse wordt gebruikt om de uitvoering van thread te starten. Het resultaat van deze methode zijn twee threads die gelijktijdig worden uitgevoerd: de huidige thread (die terugkeert van de aanroep naar de startmethode) en de andere thread (die de run-methode uitvoert).

De methode start() roept intern de methode run() van de Runnable-interface aan om de code uit te voeren die is opgegeven in de methode run() in een aparte thread.

De startthread voert de volgende taken uit:

  • Het betreft een nieuw draadje
  • De thread gaat van de status Nieuw naar de status Uitvoerbaar.
  • Wanneer de thread de kans krijgt om uit te voeren, wordt de target run() -methode uitgevoerd.

Syntaxis

 public void start() 

Winstwaarde

 It does not return any value. 

Uitzondering

IllegalThreadStateException - Deze uitzondering wordt gegenereerd als de methode start() meer dan één keer wordt aangeroepen.

Voorbeeld 1: Door de draadklasse uit te breiden

 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(); } } 
Test het nu

Uitgang:

 Thread is running... 

Voorbeeld 2: door een uitvoerbare interface te implementeren

 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(); } } 
Test het nu

Uitgang:

 Thread is running... 

Voorbeeld 3: Wanneer u de methode start() meer dan één keer aanroept

 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(); } } 
Test het nu

Uitgang:

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