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