Executor框架

Java中线程即是工作单元,也是执行单元。从jdk5开始,把工作单元与执行单元机制分离开来。工作单元包括:Runnable和Callable,执行单元由Executor框架提供。

1.      Executor框架组成部分

(1)      任务:Runnable接口和Callable接口

(2)      任务的执行:核心接口(Executor),以及继承自Executor的ExecutorService接口。ExecutorService接口两个关键实现类:ThreadPoolExcutor和ScheduledThreadExcutor。

(3)      异步计算结果:接口Future和接口Future的实现类(FutureTask类)

Executor框架基本接口和类介绍:

Executor接口:最基本接口,将任务的提交与任务的执行分离开来。

ThreadPoolExcutor:线程池的核心实现类,用来执行被提交的任务。

ScheduledThreadExcutor:实现类,可以在给定的延迟后运行命令,或者定期执行命令。(比Timer更灵活,功能更强大)。与Timer类似,但是ScheduledThreadExcutor功能更加强大和灵活。Timer对应的是单个后台线程,ScheduledThreadExcutor可以在构造函数中指定多个对应的后台线程数。

Future接口:异步计算结果。

FutureTask类(Future的实现类):异步计算结果。

(4)      Runnable接口和Callable接口的实现类:都可以被ThreadPoolExcutor和ScheduledThreadExcutor执行。

2.      Executor框架成员

Executor框架主要成员:ThreadPoolExecutor、ScheduledThreadPoolExecutor、Future接口、Runnable接口、Callable接口和Exectors。

(1)      ThreadPoolExecutor

ThreadPoolExecutor通常使用工厂类Executors来创建。Executors可以创建3中类型的ThreadPoolExecutor:SingleThreadExecutor、FixedThreadExecutor和CachedThreadExecutor。

SingleThreadExecutor:使用需要保证顺序地执行各个任务,并且在任何时间点,不会有多个线程是活动的应用场景。

public static ExecutorService newSingleThreadExecutor();

public static ExecutorService newSingleThreadExecutor(ThreadFactorythreadFactory);

FixedThreadExecutor:使用满足资源需求,而需要限制当前线程数量的应用场景,比较适合负载比较重的服务器。

public static ExecutorService FixedThreadExecutor (intnThreads);

public static ExecutorService FixedThreadExecutor (intnThreads ,ThreadFactory threadFactory);

CachedThreadExecutor:大小无界的线程池,适用于执行很多的短期异步任务的小程序或者是负载较轻的服务器。

(2)      ScheduledThreadPoolExecutor

ScheduledThreadPoolExecutor通常使用工厂类Executors来创建。Executors可以创建2中类型的ScheduledThreadPoolExecutor:ScheduledThreadPoolExecutor、和SingleThreadScheduledlExecutor。

ScheduledThreadPoolExecutor:适合于需要多个后台线程执行周期任务,同时满足资源管理的需求而需要限制后台线程的数量的应用场景。

SingleThreadScheduledlExecutor:适用于需要单个后台任务执行周期任务,同时需要保证顺序的执行各个任务的应用场景。

(3)      Future接口

(4)      Runnable接口和Callable接口

这两个接口的区别就是Runnable接口不会返回结果而Callable接口可以返回结果。

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值