logo

Java 스레드 start() 메소드

그만큼 시작() 스레드 클래스의 메소드는 스레드 실행을 시작하는 데 사용됩니다. 이 메서드의 결과는 동시에 실행되는 두 개의 스레드, 즉 현재 스레드(start 메서드 호출에서 반환됨)와 다른 스레드(run 메서드를 실행함)입니다.

start() 메소드는 내부적으로 Runnable 인터페이스의 run() 메소드를 호출하여 run() 메소드에 지정된 코드를 별도의 스레드에서 실행합니다.

시작 스레드는 다음 작업을 수행합니다.

  • 그것은 새로운 스레드를 통계합니다
  • 스레드가 New State에서 Runnable 상태로 이동합니다.
  • 스레드가 실행될 기회를 얻으면 해당 스레드의 대상 run() 메서드가 실행됩니다.

통사론

 public void start() 

반환 값

 It does not return any value. 

예외

IllegalThreadStateException - start() 메서드가 두 번 이상 호출되면 이 예외가 발생합니다.

예제 1: 스레드 클래스 확장을 통해

 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(); } } 
지금 테스트해보세요

산출:

 Thread is running... 

예 2: 실행 가능한 인터페이스 구현

 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(); } } 
지금 테스트해보세요

산출:

 Thread is running... 

예제 3: start() 메서드를 두 번 이상 호출하는 경우

 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(); } } 
지금 테스트해보세요

산출:

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