线程池的类关系

11 篇文章 0 订阅
4 篇文章 0 订阅

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;
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

壹氿

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值