참고
자바의 정석
쓰레드를 구현하는 방법은 Thread 클래스를 상속받는 방법과 Runnable 인터페이스를 구현하는 방법 총 2가지가 존재한다. 2가지 방법중 어느 방법을 써도 상관은 없지만 Thread 클래스를 상속받을 경우 다른 클래스를 상속받지 못하므로, Runnable 인터페이스를 구현하는 방법이 더 많이 사용된다.
Runnable 인터페이스를 구현하는 방법은 재사용성이 높고 코드의 일관성을 유지할 수 있기 때문에 보다 객체지향적인 방법이라 할 수 있다.
- Thread 클래스를 상속받는 방법
class MyThread extends Thread { public void run() {} }
- Runnable 인터페이스를 구현하는 방법
class MyThread implements Runnable { public void run() {} }
🙋🏻 Thread 클래스 핵심 메서드
static Thread currentThread() // 현재 실행중인 쓰레드의 참조를 반환한다. String getName() // 쓰레드의 이름을 반환한다.
start() 메서드를 호출해야만 쓰레드가 실행된다. 사실은 start() 메서드를 호출되었으면 바로 실행하는것이 아니라 실행대기 상태가 되었다가 자신의 차례가 되면 그 때 실행된다. 또한 한번 실행이 종료된 쓰레드는 다시 실행할 수 없다. 즉, start() 메서드는 한번만 호출된다는 것이다. 2번이상 호출하면 IllegalThreadStateException이 발생한다.