【ThreadPool】Executor, ExecutorService 和 Executors 间的不同
来源:互联网 发布:黄光裕入狱知乎 编辑:程序博客网 时间:2024/06/08 08:27
UML简要类图关系:
下面详细看一下三者的区别:
Executor vs ExecutorService vs Executors
正如上面所说,这三者均是 Executor 框架中的一部分。Java 开发者很有必要学习和理解他们,以便更高效的使用 Java 提供的不同类型的线程池。总结一下这三者间的区别,以便大家更好的理解:
- Executor 和 ExecutorService 这两个接口主要的区别是:ExecutorService 接口继承了 Executor 接口,是 Executor 的子接口
- Executor 和 ExecutorService 第二个区别是:Executor 接口定义了
execute()
方法用来接收一个Runnable
接口的对象,而 ExecutorService 接口中的submit()
方法可以接受Runnable
和Callable
接口的对象。 - Executor 和 ExecutorService 接口第三个区别是 Executor 中的
execute()
方法不返回任何结果,而 ExecutorService 中的submit()
方法可以通过一个 Future 对象返回运算结果。 - Executor 和 ExecutorService 接口第四个区别是除了允许客户端提交一个任务,ExecutorService 还提供用来控制线程池的方法。比如:调用
shutDown()
方法终止线程池。可以通过 《Java Concurrency in Practice》 一书了解更多关于关闭线程池和如何处理 pending 的任务的知识。 - Executors 类提供工厂方法用来创建不同类型的线程池。比如:
newSingleThreadExecutor()
创建一个只有一个线程的线程池,newFixedThreadPool(int numOfThreads)
来创建固定线程数的线程池,newCachedThreadPool()
可以根据需要创建新的线程,但如果已有线程是空闲的会重用已有线程。
总结
下表列出了 Executor 和 ExecutorService 的区别:
阅读全文
0 0
- 【ThreadPool】Executor, ExecutorService 和 Executors 间的不同
- Executor, ExecutorService 和 Executors 间的不同
- Executor, ExecutorService 和 Executors 间的不同
- Executor, ExecutorService 和 Executors 间的不同
- Executor, ExecutorService 和 Executors 间的不同
- Executor, ExecutorService 和 Executors 间的不同
- 【译】Executor, ExecutorService 和 Executors 间的不同
- Executor,Executors,ExecutorService
- Executor、Executors、Callable、FutureTask、ExecutorService
- Runnable、Callable、Executor、ExecutorService、ScheduledExecutorService、Executors
- Future/FutureTask & Callable/Runnable & Executor/ExecutorService/Executors
- Android的线程池:ExecutorService和Executors
- ExecutorService和Executors
- Executors 和 ExecutorService
- Executor/ExecutorService和ExecutorCompletionService
- Executor和ExecutorService
- Executor/ExecutorService和ExecutorCompletionService
- executors和executorService使用例子
- 编程开发经验
- 371. Sum of Two Integers
- Unity/Animation -- 添加动画事件(Animation Events)
- 保持Service不被Kill掉的方法--双Service守护 && Android实现双进程守护
- 关于int main(int argc,char*argv[])的理解
- 【ThreadPool】Executor, ExecutorService 和 Executors 间的不同
- 关于Hash的几种常用算法
- 色彩选择器(colorPicker)
- MFC之旅——分析一个MFC程序运行脉络
- JSR 303
- C++/STL纲要
- 初试GreenDAO 3.2.3
- kafka socket架构 处理流程
- HTML学习---------认识html标签