并发编程--运行多个任务并处理第一个结果
2014-09-08 15:32
375 查看
并发编程中比较常见的一个问题是,当采用多个并发任务来解决一个问题时,往往只关心这些任务中的第一个结果。比如,对一个数组进行排序有很多种算法,可以并发启动所有算法,但是对于一个给定的数组,第一个得到排序结果的算法就是最快的排序算法。
通过调用执行器的ivokeAny方法,返回的结果是第一个完成的线程,当第一个线程完成后,其他线程全部中断,下面通过一个例子来看看执行器的ivokeAny方法
客户端调用ivokeAny后返回五个线程当中第一个完成的结果,如果不希望返回第一个线程完成的结果,而是返回全部线程处理的结果,可以调用ivokeAll方法,记住调用ivokeAll方法返回参数是List<Future<T>>其中T是自定义的泛型参数。
通过调用执行器的ivokeAny方法,返回的结果是第一个完成的线程,当第一个线程完成后,其他线程全部中断,下面通过一个例子来看看执行器的ivokeAny方法
客户端调用ivokeAny后返回五个线程当中第一个完成的结果,如果不希望返回第一个线程完成的结果,而是返回全部线程处理的结果,可以调用ivokeAll方法,记住调用ivokeAll方法返回参数是List<Future<T>>其中T是自定义的泛型参数。
相关文章推荐
- Java并发编程高级篇(四):运行多个任务并处理第一个结果
- Java并发编程高级篇(五):运行多个任务并处理所有结果
- Java7并发编程--4.3、运行多个任务并处理结果
- 并发编程--在执行器中分离任务的启动与结果的处理
- java 如何运行多个任务并处理返回第一个结果
- Java并发编程-21-在执行器中分离任务的启动与结果的处理
- [笔记][Java7并发编程实战手册]4.5-4.6 运行多个任务并处理第一个结果/所有结果ThreadPoolExecutor
- java 并发 - 运行多个任务并执行第一个结果
- JAVA 并发编程随笔【五】Thread线程创建及运行线程任务
- JAVA 并发编程随笔【五】Thread线程创建及运行线程任务
- OC用Dispatch处理并发完成所有任务之后执行最终的结果
- Java并发编程-25-合并任务的结果
- JAVA 并发编程随笔【五】Thread线程创建及运行线程任务
- Java并发专题 带返回结果的批量任务运行 CompletionService ExecutorService.invokeAll
- JAVA 并发编程随笔【五】Thread线程创建及运行线程任务
- JAVA 并发编程随笔【五】Thread线程创建及运行线程任务
- JAVA 并发编程随笔【五】Thread线程创建及运行线程任务
- Java并发编程-27-异常处理及取消任务
- Java并发编程-26-异步运行任务
- 执行器实现返回多个任务并处理第一个结果