Java中的Executor和ExecutorServices之间的区别

Executor和ExecutorServices这两个接口都是Executor框架的一部分。它随Java 5一起发布。

 在Java中,线程创建是非常昂贵的操作,因此我们应该重用可用线程,而不是每次都启动新线程,并且可以使用Executor框架实现相同的目的。

执行程序框架使用线程池并行执行任务,这有助于优化响应时间和资源利用率。它提供了四种类型的内置线程池-

  • 固定线程池

  • 缓存线程池

  • 预定线程池

  • 单线程执行器

序号执行者执行器服务
1
基本的
它是一个父接口
它扩展了执行程序接口
2
方法
execute()方法
submit()方法
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");
   }
}