class Car implements Runnable {
int a;
public void run() {
System.out.println("message");
}
}
public class Main {
public static void main(String args[]) {
Thread t1 = new Thread(new ___());
t1.start();
}
}
Runnable 인터페이스 구현 클래스의 객체를 스레드에 연결하는 구조 이해Runnable 객체를 전달하는 방식 숙지class Car implements Runnable {
public void run() {
System.out.println("message");
}
}
Runnable 인터페이스는 run() 메서드를 반드시 오버라이드해야 함Thread t1 = new Thread(new Car());
Thread 생성자에 Runnable 구현 객체(new Car())를 전달Runnable → Object)이 자동 적용됨t1.start();
start()는 새로운 스레드를 생성하고 run()을 비동기 실행run()을 호출하면 단순한 메서드 호출이 되어 스레드가 생성되지 않음| 순서 | 코드 | 설명 | 결과 |
|---|---|---|---|
| ① | new Car() | Runnable 인터페이스 구현 객체 생성 | Car 객체 생성 |
| ② | new Thread(new Car()) | Thread 생성자에 Car 전달 | Runnable 연결 |
| ③ | t1.start() | 새로운 스레드 실행 | run() 자동 호출 |
| ④ | System.out.println("message"); | run() 내부 실행 | message 출력 |
message
Car
이 문제에서 꼭 알아야 할 개념:
Thread는 Runnable 인터페이스 구현 객체를 인자로 받는다.Thread t = new Thread(new Car()); 형태로 객체를 전달해야 한다.start() 호출 시 내부적으로 run() 실행 → 스레드 시작.run() 직접 호출 시 단일 실행이며, 스레드 동작 아님에 주의.