
171
9
장
-
Executor 프레임워크를 통한 스레드 실행 제어
자바의 실행자(
Executor
) 프레임워크는 스레드에 대해 그리고 시스템에서 스레드가 사용하는
자원에 대해 새로운 차원의 제어를 가능하게 한다. 우리는 때로 시스템이 빠르게 태스크 해결을
처리할 수 있도록, 되도록 많은 스레드를 실행하길 원한다. 반면 어떤 때는 시스템이 스레드 수
를 관리하길 원하거나, 더 이상 필요하지 않은 스레드를 취소하길 원한다.
Executor
프레임워
크를 관련된 클래스와 함께 사용하면 다음과 같은 일을 수행할 수 있다.
●
스레드에서 실행되기를 기다리는 태스크 수를 제어하는 작업자 스레드 풀과 큐를 설정한다.
●
비정상적으로 종료되는 스레드를 초래하는 에러를 확인한다.
●
완료되는 스레드를 기다리고 스레드로부터 결과를 가져온다.
●
스레드의 일괄 처리를 실행하고 고정된 순서로 결과를 가져온다.
●
사용자가 더 빨리 결과를 확인할 수 있도록 알맞은 시간에 백그라운드 스레드를 시작한다.
9.1
Executor
Executor
프레임워크의 기본 구성요소는 간단한
Executor
인터페이스다. 이것의 주요 목표는
실행으로부터 태스크(예를 들면
Runnable
)의 생성을 분리하여, 앞에서 나열한 응용프로그램
동작들을 가능하게 하는 것이다. 이 인터페이스는 단 하나의