더북(TheBook)

3.3.3 Runnable 인터페이스


모든 프로세서가 멀티 코어를 장착하고 있다면, 모든 코어를 작업 중인 상태로 유지하고 싶을 것이다. 아마 특정 태스크(작업)를 별도의 스레드에서 수행하거나 실행용 스레드 풀에 넣으려고 할 것이다. 태스크를 정의하려면 Runnable 인터페이스를 구현해야 한다. Runnable 인터페이스에는 메서드가 한 개만 있다.

class HelloTask implements Runnable {

    public void run() {

        for (int i = 0; i < 1000; i++) {

            System.out.println("Hello, World!");

        }

    }

}


이 태스크를 새 스레드에서 실행하려면 Runnable로 스레드를 생성하고 시작해야 한다.

Runnable task = new HelloTask();

Thread thread = new Thread(task);

thread.start();


이제 run 메서드는 별도의 스레드에서 실행되므로 현재 스레드는 다른 작업을 계속할 수 있다.

Note ≣

10장 병행 프로그래밍에서 Runnable을 실행하는 다른 방법을 알아본다.


Note ≣

T 타입 결과를 반환하는 태스크에 사용하는 Callable<T>라는 인터페이스도 있다.

신간 소식 구독하기
뉴스레터에 가입하시고 이메일로 신간 소식을 받아 보세요.