繁体   English   中英

如何在列表上运行 Executor Service 并在 Java 中执行一些操作

[英]How to run Executor Service on a list and perform some action in Java

我有一个项目列表,我想运行一个执行器服务来执行一些昂贵的操作:

var myList = Arrays.asList("item1", "item2");
var es = Executors.newFixedThreadPool(10);

myList.foreach(item -> {
    es.submit(() -> {
        performExpensiveAction(item);
    })
})

es.shutdown();

假设我在列表中有 100 个项目,我希望 es 对所有 100 个项目执行ExpensiveAction,但它只对 10 个项目执行操作。

您应该考虑使用invokeAll而不是shutdown

shutdown()方法将允许先前提交的任务在终止之前执行,

shutdownNow()方法阻止等待任务启动并尝试停止当前正在执行的任务。

方法invokeAnyinvokeAll执行最常用的forms 批量执行,执行一组任务,然后等待至少一个或全部完成。 (invokeAll 等待所有)

文档

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM