Java中的线程池——Executor框架

1 Executor框架简介


我们通常创建的Java线程它既是工作单元,又是执行机制。每创建一个任务就需要一个新建一个线程来执行,这样会极大的消耗系统资源。从JDK5开始,把工作单元和执行分离开,工作单元变为Runable和Callable,而执行机制就是Executor框架。Executor框架的类与接口图如下

2 框架的结构



Executor框架主要由3大部分组成

  • 任务:包括被执行的任务需要实现的接口:Runnable和Callable
  • 任务的执行:包括任务执行的核心接口Executor,以及继承自Executor的ExecutorService接口,和非常重要的两个关键类:ThreadPoolExecutor和ScheduledThreadPoolExecutor。
  • 异步计算的结果:包括接口Future和实现Future接口的FutureTask类

Executor是一个接口,他是Executor框架的基础,它将任务的提交与任务的执行分离。
ThreadPoolExecutor是线程池的核心实现类,用来执行被提交的任务。
ScheduledThreadPoolExecutor是一个实现类,可以在给定的延迟后运行命令,或者定期执行命令。
Future接口和Callable接口的实现类,都可以被ThreadPoolExecutor或ScheduledThreadPoolExecutor执行


上图表示了各个接口的合作关系流程。由主线创建Runable或Callable任务,提交给ExecutorService进行执行。如果存在返回值,则返回一个Future对象,主线程通过get方法 获取任务的返回值,由此就是Executor框架的执行流程。


  • 0
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值