簡體   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