并发编程--运行多个任务并处理第一个结果

来源:互联网 发布:如何加入淘宝直通车 编辑:程序博客网 时间:2024/05/26 14:09

并发编程中比较常见的一个问题是,当采用多个并发任务来解决一个问题时,往往只关心这些任务中的第一个结果。比如,对一个数组进行排序有很多种算法,可以并发启动所有算法,但是对于一个给定的数组,第一个得到排序结果的算法就是最快的排序算法。

通过调用执行器的ivokeAny方法,返回的结果是第一个完成的线程,当第一个线程完成后,其他线程全部中断,下面通过一个例子来看看执行器的ivokeAny方法


客户端调用ivokeAny后返回五个线程当中第一个完成的结果,如果不希望返回第一个线程完成的结果,而是返回全部线程处理的结果,可以调用ivokeAll方法,记住调用ivokeAll方法返回参数是List<Future<T>>其中T是自定义的泛型参数。

0 0
原创粉丝点击