쓰레드를 구현는 방법 두 가지
Thread 클래스
상속받는 방법
class MyThread extends Thread {
public void run() {
... // Thread 클래스의 run()을 오버라이딩
}
}
Runnable 인터페이스
를 구현하는 방법
class MyThread implements Runnable {
public void run() {
... // Runnable 인터페이스의 run()을 구현
}
}
⇒ 어느 방법이든 run() 의 몸통({})을 채워줘야함
쓰레드 실행시킬 때 start() 호출함. 그렇다면 run()은 무엇?
프로그램을 실행할 때 최소 하나의 쓰레드를 생성하고, 그 쓰레드가 main 메서드 호출해서 작업이 수행되게함
예제)
start()
를 해서 새로운 호출스택을 만들어 해당 스택에 쓰레드 시행
class ThreadEx2 {
public static void main(String args[]) throws Exception {
ThreadEx2_1 t1 = new ThreadEx2_1();
t1.start(); // main 쓰레드가 t1 쓰레드를 위한 호출스택 생성
}
}
class ThreadEx2_1 extends Thread {
public void run() {
throwException(); // 예외발생
}