并发编程--在执行器中控制任务的完成
2014-09-08 17:01
176 查看
FutureTask类提供了一个名为done的方法,允许在执行器中的任务执行结果之后,还可以执行一些代码。这个方法可以被用来执行一些后期处理操作,比如:产生报表,通过邮件发送结果或释放一些系统资源。当任务执行完成是受FutureTask类控制时,这个方法在内部被FutureTask类调用。在任务结果设置后以及任务的状态已改变为isDone之后,无论任务是否被取消或正常结束,done方法才被调用。
默认情况下,done方法的实现为空,即没有任务具体的代码实现,我们可以覆盖FutureTask类并实现done方法来改变这种行为。
下面我们通过一个例子看看FutureTask的奥秘
这里我们自定义了类ResultTask继承了FutureTask,FutureTask是一个泛型接口,ResultTask覆盖了FutureTask类的done方法,当ResultTask被取消或者完成时会自动调用该方法,当我们要创建ResultTask时,我们需要先创建Callable对象,Callable对象作为参数创建ResultTask对象,这里主线程先休眠1秒,让其他线程先执行,有些线程执行完成了调用ResultTask对象的isDone方法为true,没完成的为false。
默认情况下,done方法的实现为空,即没有任务具体的代码实现,我们可以覆盖FutureTask类并实现done方法来改变这种行为。
下面我们通过一个例子看看FutureTask的奥秘
这里我们自定义了类ResultTask继承了FutureTask,FutureTask是一个泛型接口,ResultTask覆盖了FutureTask类的done方法,当ResultTask被取消或者完成时会自动调用该方法,当我们要创建ResultTask时,我们需要先创建Callable对象,Callable对象作为参数创建ResultTask对象,这里主线程先休眠1秒,让其他线程先执行,有些线程执行完成了调用ResultTask对象的isDone方法为true,没完成的为false。
相关文章推荐
- Java并发编程-20-在执行器中取消任务和控制任务的完成
- 在执行器中控制任务的完成
- [笔记][Java7并发编程实战手册]4.9-4.10在执行器中控制任务的完成和取消任务FutureTask
- Java并发编程-19-在执行器中延时执行任务和周期性执行任务
- Java并发编程-21-在执行器中分离任务的启动与结果的处理
- Java并发编程高级篇(六):在执行器中延时执行任务
- 并发编程--在执行器中周期性执行任务
- Java并发编程-22-处理在执行器中被拒绝的任务
- Java并发编程高级篇(三):执行器中执行任务并返回结果
- 并发编程--在执行器中分离任务的启动与结果的处理
- 并发编程--在执行器中延迟执行任务
- Java并发编程高级篇(七):使用执行器周期性地执行任务
- Windows核心编程学习笔记 第二部分 完成编程任务 第7章 线程的调度 优先级 亲缘性
- 用CronTab 来作定时任务处理,并控制并发数
- linux并发控制之完成量
- 并发编程模型和访问控制
- 9i10g11g编程艺术——并发与多版本控制
- C++第5周任务【任务2】本任务将设计一个简单的分数类,完成对分数的几个运算。一则巩固基于对象编程的方法,二则也为第10章做运算符重载等积累些感性认识。
- 基于嵌入式操作系统VxWorks的多任务并发程序设计(2) ――任务控制 分类: vxWorks 2014-03-12 09:43 481人阅读 评论(0) 收藏
- (39)21.4 终结任务---Java编程思想之并发笔记