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

概述

Executor父接口

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

ScheduledExecutorService

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

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

Executors

//静态工厂类,提供了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对象。如下

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)

在这里插入图片描述

//试图取消对此任务的执行
//如果任务已经执行完成、或取消,或者由于某些原因而无法取消,则返回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 实现了Executor,增加了系列方法ScheduledExecutorServiceAbstractExecutorService实现ExecutorService接口,为其提供默认实现ExecutorsFuture、FutureTask所遇到的程序开发问题。

如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。

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

评论列表共有 0 条评论

立即
投稿
返回
顶部