Computer >> 컴퓨터 >  >> 프로그램 작성 >> Java

Java에서 run() 메소드를 직접 호출하면 어떻게 될까요?


Thread 개체의 run() 메서드 직접 호출 별도의 스레드를 시작하지 않습니다. 현재 스레드 내에서 실행할 수 있습니다. Runnable.run을 실행하려면 별도의 스레드 내에서 다음 중 하나를 수행하십시오.

  • 실행 가능을 사용하여 스레드 구성 개체 및 호출 start() 스레드의 메서드입니다.
  • Thread 개체의 하위 클래스를 정의하고 run() 의 정의를 재정의합니다. 방법. 그런 다음 이 하위 클래스의 인스턴스를 구성하고 start()를 호출합니다. 해당 인스턴스에서 직접 메소드를 사용합니다.

예시

public class ThreadRunMethodTest {
   public static void main(String args[]) {
      MyThread runnable = new MyThread();
      runnable.run(); // Call to run() method does not start a separate thread
      System.out.println("Main Thread");
   }
}
class MyThread extends Thread {
   public void run() {
      try {
         Thread.sleep(1000);
      } catch (InterruptedException e) {
         System.out.println("Child Thread interrupted.");
      }
      System.out.println("Child Thread");
   }
}

위의 예에서 기본 스레드인 ThreadRunMethodTest , 하위 스레드, MyThread를 호출합니다. , run() 메서드를 사용합니다. 이렇게 하면 나머지 기본 스레드가 실행되기 전에 자식 스레드가 완료될 때까지 실행되어 "하위 스레드 "는 "메인 스레드 앞에 인쇄됩니다. ".

출력

Child Thread
Main Thread