본문 바로가기

Programming/JAVA

멀티 스레드(2) - 작업 스레드 개념 : Thread 하위 클래스로부터 생성 1

JAVA logo image

 

 

앞선 아티클까지 우리는 작업(워커) 스레드가 실행한 작업을 Runnable 인터페이스를 통해서 선언했습니다. 그리고 이 구현 객체를 Thread 생성자의 파라미터로 전달했지요. 이번에는 작업 스레드가 실행할 작업 내용을 Runnable을 사용하지 않고, Thread의 하위 클래스를 통해 작업 스레드를 정의하는 방법을 알아보겠습니다. 

 

작업 스레드 클래스는 우선 Thread 클래스를 상속하고 run 메서드를 오버라이딩해서 스레드가 실행할 코드를 선언해주면 됩니다. 그리고나서 Thread 객체를 선언할 때 (Thread의 자식 클래스인) 작업 스레드 클래스를 대입해주면 됩니다. 앞의 아티클에서는 Runnable을 Thread 객체 선언 시 파라미터로 전달하는 것이 주요 포인트였죠? 

 

워커 스레드를 선언하는 예시를 보겠습니다.

 

public class WorkerThread extends Thread {
    @Override
    public void run() {
        // 작업 스레드가 실행할 코드
    }
}
Thread thread = new WorkerThread();

 

 

여기서도 익명 객체를 사용할 수 있습니다. Thread 익명 객체로 작업 스레드 객체 생성도 가능하죠. 정확하게는 익명 자식 객체입니다. 기억하시죠? 여기서 사용되는 new Thread( )는 Thread의 자식 객체를 대입하는 문구이고, 이는 부모 클래스인 Thread의 생성자를 호출하는 개념이라는 것!

 

Thread thread = new Thread() {
    public void run() {
        // 스레드가 실행할 코드;
    }
};