码迷,mamicode.com
首页 > 其他好文 > 详细

ExecutorService——<T> Future<T> submit(Callable<T> task)

时间:2018-08-16 01:02:04      阅读:493      评论:0      收藏:0      [点我收藏+]

标签:span   class   原因   exe   构造   tor   code   执行   ble   

提交一个有返回值的任务用于执行,且返回一个Future对象,用来表示行将发生的任务的结果。
如果任务执行成功的话,那么Future对象的get方法将会返回任务的执行结果T。
 
如果你想要立即阻塞,等待任务完成,那么你可以使用以下这种构造形式。
result = exec.submit(aCallable).get();

 

 
为什么要返回一个Future对象,它有什么用呢?
原因是,有需求,什么需求呢,需求就是任务的提交者,需要知晓任务的执行情况。要对任务有所掌控,不可能把任务丢给你就不管了,起码你得告诉我任务完成没有。
或者我有你的联系方式,可以随时查看任务的完成情况。(Future对象的isDone方法),如果完成了,完成结果又是什么(Future对象的get方法
知晓任务的执行情况又有什么用呢,答案是可以选择性地取消任务。(Future对象的cancel方法
 
注:ExecutorService的submit有多个重载方法,并不一定要Callable参数,也可以是没有返回值的Runable。
 
ExecutorService.java(部分源码)
技术分享图片
 技术分享图片

 

ExecutorService——<T> Future<T> submit(Callable<T> task)

标签:span   class   原因   exe   构造   tor   code   执行   ble   

原文地址:https://www.cnblogs.com/longfurcat/p/9484271.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!