Java7并发编程--4.2、在执行器中执行任务并且返回结果
来源:互联网 发布:小灰灰淘宝买家采集器 编辑:程序博客网 时间:2024/05/18 18:17
执行框架(Executor Framework)的优势之一就是,可以在运行并发任务的时候返回结果。但是需要以下两个类来实现功能:
Callable 接口类似于 Runnable。但是 Runnable 不会返回结果,并且无法抛出经过检查的异常。
Executors 类包含一些从其他普通形式转换成 Callable 类的实用方法。
简单说:就是实现这个类,并在唯一的call() 方法里面实现自己的业务逻辑。
- 接口 Callable<V>
Callable 接口类似于 Runnable。但是 Runnable 不会返回结果,并且无法抛出经过检查的异常。
Executors 类包含一些从其他普通形式转换成 Callable 类的实用方法。
简单说:就是实现这个类,并在唯一的call() 方法里面实现自己的业务逻辑。
- 接口 Future<V>
简单说:该接口可以获取一个线程的结果。调用get的时候,如果结果没有计算完成,则阻塞。
示例场景描述: 下面示例讲的是,使用Callable任务类task,里面执行的内容是,外面传递进来什么就返回什么,其中使用随眠来模拟运算时间。然后把创建好的callable交给执行器执行。获得future对象,然后用future.get() 来获取结果。
可以看到上面的运行结果,在我们把task交给执行器执行的时候,的确是以线程的方式在运行了。等待全部任务结束后,能获取到正确的返回结果。
如果更改程序Task类,增加红色方框内异常语句:
如果我们把上面的异常打开,就能看到就算程序抛出了异常,但是在不调用get() 之前是不会抛出异常的。然后 任务完成状态却和jdk说明一致,是true。
0 0
- Java7并发编程--4.2、在执行器中执行任务并且返回结果
- Java7并发编程--4.4、在执行器中执行任务并且返回结果
- [笔记][Java7并发编程实战手册]4.4 在执行器中执行任务并返回结果Callable、Future
- 并发编程--在执行器中执行任务并返回结果
- Java并发编程-17-在执行器中执行任务并返回结果
- [笔记][Java7并发编程实战手册]4.11-4.12在执行器中分离任务的启动和结果的处理和处理在执行器中被拒绝的任务
- [笔记][Java7并发编程实战手册]4.7-4.8 在执行器中延迟执行或则周期执行任务ScheduledThreadPoolExecutor
- Java并发编程-18-在执行器中执行任务并处理结果
- [笔记][Java7并发编程实战手册]4.9-4.10在执行器中控制任务的完成和取消任务FutureTask
- 并发编程--在执行器中延迟执行任务
- 并发编程--在执行器中周期性执行任务
- 并发编程--在执行器中分离任务的启动与结果的处理
- Java并发编程-21-在执行器中分离任务的启动与结果的处理
- Java并发编程-19-在执行器中延时执行任务和周期性执行任务
- 执行器中执行任务并返回结果
- 并发编程--在执行器中取消任务
- 并发编程--在执行器中控制任务的完成
- Java并发编程-20-在执行器中取消任务和控制任务的完成
- UIWebView实现自动登陆
- checkbox全选
- jsvc将tomcat配置成服务
- HDU Problem 1051 Wooden Sticks 【LIS】
- Foundation框架中的NSArray
- Java7并发编程--4.2、在执行器中执行任务并且返回结果
- 数据结构实验之查找一:二叉排序树
- 史上最易懂的Android jni开发资料--NDK环境搭建
- 把数组排成最小的数
- Lua 多条件排序
- 图结构练习——BFS——从起始点到目标点的最短步数
- Python map
- 深入 char * ,char ** ,char a[ ] ,char *a[] 内核
- android测试:UI automator