java进阶 - 线程池 - A - ExecutorService

20 篇文章 0 订阅

标注:这是一条不归路,想看的请按照 XXX-OOO-英文字母-ZZZ 英文字母的顺序不要命的走下去

目录

1.先要说一下线程池 垫在屁股最底下的东西

2.然后再看一下上面一层薄膜

3. 这个接口-ScheduledExecutorService - 针对 schedule 定时任务搞了点花头精


Doug Lea 牛逼!!!

好,开始了,画了张小图

1.先要说一下线程池 垫在屁股最底下的东西

Executor:调用线程异步执行runnable传入的方法体 

目前就我不成熟的看法:这个方法是为了 用一下接口特性: 维护性, 扩展性

2.然后再看一下上面一层薄膜

嗯,也是个接口,过了大约吃了个中饭的时间之后,没想到用了什么设计模式!

好像没什么好说的,吃个大辣皮,把接口方法给简单介绍以下吧

1. shutdown  --- 有序关闭,已有任务继续执行,不接收新任务

2. shutdownNow -- 尝试停止所有正在执行任务,停止处理等待任务,返回等待执行的任务列表

3. isShutdown -- 如果此执行程序已关闭,则返回true

4. isTerminated -- 如果 线程池 shutdown 后所有任务都已完成,则返回true

5. awaitTermination -- 在关闭请求、当前线程中断、或超时发生之后,等待所有任务完成执行

6. submit(Callable) -- 提交线程任务,返回 Future 值               这里我单独写了一篇 Future的简单介绍

7. submit(Runnable,T) -- 提交线程任务,返回 Future 值 

8. submit(Runnable) -- 提交线程任务,不返回值

9. invokeAll(Collection<? extends Callable<T>> tasks) -- 提交一批线程任务执行,返回所有任务的结果 List<Future<T>>

10. List<Future<T>> invokeAll(Collection<? extends Callable<T>> tasks, long timeout, TimeUnit unit) -- 提交一批线程任务执行,设置超时时间 List<Future<T>>

11.  invokeAny(Collection<? extends Callable<T>> tasks) -- 提交一批任务中的某一个,返回这一个的结果

12. invokeAny(Collection<? extends Callable<T>> tasks, long timeout, TimeUnit unit) -- 提交一批任务中的某一个,设置超时时间,返回结果

3. 这个接口-ScheduledExecutorService - 针对 schedule 定时任务搞了点花头精

1. 提交runnable任务,延迟运行,返回 null

2. 提交callable任务,延迟运行, 有返回值

3. 提交runnable任务,延迟 initialDealy 之后,开始周期性的执行该任务,每period时间执行一次如果任务异常则退出。如果取消任务或者关闭线程池,任务也会退出, 如果任务执行一次的时间大于周期时间,则任务执行将会延后执行,而不会并发执行

4.  提交Runnable任务延迟了initialDelay时间后,开始周期性的执行该任务,以后每两次任务执行的间隔是delay
     如果任务异常则退出。如果取消任务或者关闭线程池,任务也会退出

 

看到这儿,依旧平平无奇,下一章节讲述--AbstractExecutorService  next -->

 

  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值