logo

Java Thread start() -menetelmä

The alkaa() säikeen luokan menetelmää käytetään säikeen suorittamisen aloittamiseen. Tämän menetelmän tuloksena on kaksi säiettä, jotka ovat käynnissä samanaikaisesti: nykyinen säie (joka palaa kutsusta aloitusmenetelmään) ja toinen säie (joka suorittaa ajomenetelmänsä).

Start()-menetelmä kutsuu sisäisesti Runnable-liitännän run()-menetelmää suorittaakseen run()-menetelmässä määritetyn koodin erillisessä säikeessä.

Aloitussäie suorittaa seuraavat tehtävät:

  • Se luo uuden ketjun
  • Säie siirtyy uudesta tilasta Runnable-tilaan.
  • Kun säie saa mahdollisuuden suorittaa, sen target run() -metodi suoritetaan.

Syntaksi

 public void start() 

Palautusarvo

 It does not return any value. 

Poikkeus

IllegalThreadStateException - Tämä poikkeus heittää, jos start()-metodia kutsutaan useammin kuin kerran.

Esimerkki 1: Laajentamalla säikeen luokkaa

 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(); } } 
Testaa nyt

Lähtö:

 Thread is running... 

Esimerkki 2: Toteuttamalla 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(); } } 
Testaa nyt

Lähtö:

 Thread is running... 

Esimerkki 3: Kun kutsut start()-metodia useammin kuin kerran

 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(); } } 
Testaa nyt

Lähtö:

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