Java 中 Executor 和 ExecutorServices 的区别
javaserver side programmingprogramming
Executor 和 ExecutorServices 这两个接口都是 Executor 框架的一部分。它随 Java 5 发布。
在 Java 中,线程创建是一项非常昂贵的操作,因此我们应该重用可用线程,而不是每次都启动一个新线程,我们可以使用 Executor 框架实现相同的目的。
Executor 框架使用线程池并行执行任务,这有助于优化响应时间和资源利用率。它提供了四种类型的内置线程池 −
- 固定线程池
- 缓存线程池
- 调度线程池
- 单线程执行器
Sr.编号 | 关键 | Executor | ExecutorServices |
---|---|---|---|
1 | 基本 | 它是一个父接口 | 它扩展了 Executor 接口 |
2 | 方法 | 它有 execute() 方法 | 它有 submit() 方法 |
3 | 返回类型 | 它不返回任何东西。 | 它返回未来对象。 |
4. | Runnable /Callable | 它接受 Runnable 对象。 | 它同时接受 Runnable 和 Callable |
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"); } }
Executor 示例
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"); } }