首页 > 其他 > 详细

concurrency基础

时间:2017-02-14 01:20:04      阅读:356      评论:0      收藏:0      [点我收藏+]

Runnable 一个执行任务,没有返回值,也不能抛出受检查异常

Callable 一个执行任务有返回值,也能抛出受检查异常

Future 表示执行任务的生命周期,任务的生命周期为:创建,提交,开始,完成。

 

Executor 只有一个 void execute(Runnable command) 方法,没有对其自身生命周期的方法

ExecutorService 扩展了Executor,并加入了对线程池(ExecutorService本身)生命周期的管理,ExecutorService的生命周期有3种状态:运行,关闭和已终止。其submit方法可以返回执行任务的Future

CompletionService 融合了Executor和BlockingQueue的功能,使用Executor执行任务,任务执行完成后把该任务的计算结果放到BlockingQueue中,可以调用take或poll方法获取BlockingQueue中的结果

 

Timer 类执行定时任务时只会创建一个线程,有以下缺点:

1. 当某个TimerTask执行时间较长时(假设超过了几个执行周期),后面的TimerTask有可能快速连续调用几次(由前面超过的几个执行周期决定),或者被抛弃不再调用(取决于固定速率和固定延时)

2. Timer不捕获异常,当某个TimerTask抛出未检查异常时,整个Timer将被取消

另外,Timer支持基于绝对时间而不是相对时间的调度机制,因此对系统时钟比较敏感

ScheduledThreadPoolExecutor 基于相对时间的调度机制,而且是线程池的方式执行,不存在上述缺陷

concurrency基础

原文:http://www.cnblogs.com/drizzlewithwind/p/6395946.html

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!