我是靠谱客的博主 苹果野狼,这篇文章主要介绍线程池的类关系Executor父接口ExecutorService 实现了Executor,增加了系列方法ScheduledExecutorServiceAbstractExecutorService实现ExecutorService接口,为其提供默认实现ExecutorsFuture、FutureTask,现在分享给大家,希望可以做个参考。

Executor父接口

ExecutorService 实现了Executor,增加了系列方法

ScheduledExecutorService

继承ExecutorService,为一个“延迟”和“定期执行”的ExecutorService。它提供了schedule 、scheduleAtFixedRate、scheduleWithFixedDelay几个方法安排任务在给定的延时执行或者周期性执行

AbstractExecutorService实现ExecutorService接口,为其提供默认实现

Executors

复制代码
1
2
3
4
5
6
7
//静态工厂类,提供了Executor、ExecutorService、ScheduledExecutorService、ThreadFactory、Callable等类的静态工厂方法,通过这些静态工厂方法可以得到相应的对象 //1、创建并返回设置有常用配置字符串的ExecutorService方法 //2、创建并返回带有常用配置字符串的ScheduledExecutorService方法 //3、创建并返回“包装的”ExecutorService方法,它可以通过使特定于实现的方法不可访问来禁用重新配置 //4、创建并返回ThreadFactory方法,它可以将新创建的线程设置为已知的状态 //5、创建并返回非闭包形式的Callable的方法,这样可以将其用于需要Callable的执行方法中

在这里插入图片描述

Future、FutureTask

Future接口和实现了Future接口的FutureTask接口代表了线程池的异步计算结果。AbstractExecutorService提供了newTaskFor()方法返回一个RunnableFuture,除此之外当我们把一个Runnable或者Callable提交给(submit())ThreadPoolExecutor或者ScheduledThreadPoolExecutor时,它们则会向我们返回一个FutureTask对象。如下

复制代码
1
2
3
4
5
6
7
8
9
10
11
12
protected <T> RunnableFuture<T> newTaskFor(Runnable runnable, T value) { return new FutureTask<T>(runnable, value); } protected <T> RunnableFuture<T> newTaskFor(Callable<T> callable) { return new FutureTask<T>(callable); } <T> Future<T> submit(Callable<T> task) <T> Future<T> submit(Runnable task, T result) Future<> submit(Runnable task)

在这里插入图片描述

复制代码
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
//试图取消对此任务的执行 //如果任务已经执行完成、或取消,或者由于某些原因而无法取消,则返回false //当调用cancel时,如果调用成功而任务还没启动,则该任务永远不启动 //如果任务已经启动,则mayInterruptIfRunning参数确定是否应该以试图停止任务的方式来中断执行此任务的线程 boolean cancel(boolean mayInterruptIfRunning); //如果任务正常完成前被取消,则返回ture boolean isCancelled(); //如果任务已完成,返回true boolean isDone(); //如果有必要,等待计算完成,然后获取其结果 V get() throws InterruptedException, ExecutionException; //如有必要,最多等待timeout时间等待计算结果 V get(long timeout, TimeUnit unit) throws InterruptedException, ExecutionException, TimeoutException;

最后

以上就是苹果野狼最近收集整理的关于线程池的类关系Executor父接口ExecutorService 实现了Executor,增加了系列方法ScheduledExecutorServiceAbstractExecutorService实现ExecutorService接口,为其提供默认实现ExecutorsFuture、FutureTask的全部内容,更多相关线程池的类关系Executor父接口ExecutorService内容请搜索靠谱客的其他文章。

本图文内容来源于网友提供,作为学习参考使用,或来自网络收集整理,版权属于原作者所有。
点赞(71)

评论列表共有 0 条评论

立即
投稿
返回
顶部