Executor 및 ExecutorServices 두 인터페이스는 모두 Executor 프레임워크의 일부입니다. Java 5와 함께 출시되었습니다.
Java에서 스레드 생성은 매우 비용이 많이 드는 작업이므로 매번 새 스레드를 시작하는 대신 사용 가능한 스레드를 재사용해야 하며 Executor 프레임워크를 사용하여 동일한 작업을 수행할 수 있습니다.
Executor 프레임워크는 스레드 풀을 사용하여 응답 시간과 리소스 활용을 최적화하는 데 도움이 되는 병렬 작업을 실행합니다. 4가지 유형의 내장 스레드 풀을 제공합니다. -
- 고정 스레드 풀
- 캐시된 스레드 풀
- 예약된 스레드 풀
- 단일 스레드 실행기
| Sr. 아니요. | 키 | 실행자 | 실행 서비스 |
|---|---|---|---|
| 1 | 기본 | 상위 인터페이스입니다. | Executor 인터페이스를 확장합니다. |
| 2 | 방법 | execute() 메서드가 있습니다. | 제출() 메소드가 있습니다. |
| 3 | 반환 유형 | 아무것도 반환하지 않습니다. | 미래의 객체를 반환합니다. |
| 4. | 실행 가능/호출 가능 | 실행 가능한 개체를 허용합니다. | 실행 가능 및 호출 가능 모두 허용 |
ExecutorService의 예
public class Main {
public static void main(String args[]) {
ExecutorService services = Executors.newSingleThreadExecutor();
Future<?> future = services.submit(new Task());
}
}
public class Task implements Runnable {
@Override
public void run() {
System.out.println("In Run");
}
} 실행자의 예
public class Main {
public static void main(String args[]) {
Executor executor = Executors.newSingleThreadExecutor();
executor.execute(new Task());
}
}
public class Task implements Runnable {
@Override
public void run() {
System.out.println("In Run");
}
}