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