十年网站开发经验 + 多家企业客户 + 靠谱的建站团队
量身定制 + 运营维护+专业推广+无忧售后,网站问题一站解决
java ThreadPoolExecutor 并发调用实例详解
让客户满意是我们工作的目标,不断超越客户的期望值来自于我们对这个行业的热爱。我们立志把好的技术通过有效、简单的方式提供给客户,将通过不懈努力成为客户在信息化领域值得信任、有价值的长期合作伙伴,公司提供的服务项目有:空间域名、网页空间、营销软件、网站建设、牟平网站维护、网站推广。概述
通常为了提供任务的处理速度,会使用一些并发模型,ThreadPoolExecutor中的invokeAll便是一种。
代码
package test.current; import java.util.ArrayList; import java.util.Arrays; import java.util.List; import java.util.concurrent.Callable; import java.util.concurrent.ExecutionException; import java.util.concurrent.Future; public class TestCallable { public static void main(String[] args) throws InterruptedException, ExecutionException { List>> tasks = new ArrayList<>(); for (int i = 0; i < 10; i++) { Callable > task = new Callable
>() { @Override public List
call() throws Exception { return Arrays.asList(1L,2L); } }; tasks.add(task); } List finalResults = new ArrayList<>(10); List >> results = ThreadPool.getThreadPool().invokeAll(tasks); for(Future > ele : results) { List
list = ele.get(); finalResults.addAll(list); } System.out.println(finalResults); } }