Executor 인터페이스는 Java의 Util의 Concurrent 패키지에 위치하는 인터페이스로 Runnable한 Task를 실행하는 개체입니다. Executor라는 이름에 맞게 단순히 실행을 위한 인터페이스입니다. 이 인터페이스의 역할을 작업을 제공하는 코드와 작업을 실행하는 매커니즘의 커플링을 제거해주는 역할을 합니다.
사용방법으로는 일반적으로 Thread를 명시적으로 작성하는 대신 Executor를 사용합니다. 예를 들어, 각 Task에 대해 새로운 Thread의 start() 함수를 호출하는 대신 다음을 사용할 수 있습니다.
Executor executor = anExecutor();
executor.execute(new RunnableTask1());
executor.execute(new RunnableTask2());
그렇다고 Executor 인터페이스는 엄격하게 비동기적인 실행을 요구하지는 않습니다. 간단한 케이스로 Executor는 Thread에서 제출된 작업을 즉시 실행할 수 있습니다. 하지만 일반적으로는 각기 부여된 Task에 대해서 새로운 Thread에서 동작하도록 합니다.
class ExampleExecutor implements Executor {
public void execute(Runnable r) {
r.run();
}
}
class ThreadPerTaskExecutor implements Executor {
public void execute(Runnable r) {
new Thread(r).start();
}
}
728x90
반응형
'Language > Java' 카테고리의 다른 글
ExecutorService (0) | 2023.02.16 |
---|---|
Thread Pool (0) | 2023.02.07 |
Thread in Java (0) | 2023.02.07 |
함수형 인터페이스 (Functional Interface) (1) | 2023.01.31 |
람다식 (Lamda Expression) (0) | 2023.01.31 |
댓글