Language/Java

Executor

by Donghwan 2023. 2. 15.

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

댓글