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"); } }