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>라는 인터페이스도 있다.