gpt4 book ai didi

方法参数列表的Java 8并行流

转载 作者:行者123 更新时间:2023-12-03 21:47:10 24 4
gpt4 key购买 nike

我有一个方法:

invokList(List<Object> list);

此方法在一个 jar 中,我无法访问它的源代码。因此,为此,我需要以并行方式执行 invokList,有人可以帮忙吗?

想法是将列表拆分为多个列表并并行执行 invokList。

我做了这个例子:

            import java.util.Arrays;
import java.util.Collections;
import java.util.List;

public class Test {

public static void main(String[] args) {
List<Integer> list = Arrays.asList(1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20);
list.parallelStream()
.map(Collections::singletonList)
.forEach(Test::invokList);
}

public static void invokList(List<Integer> list) {
try {
Thread.sleep(100);
System.out.println("The Thread :" + Thread.currentThread().getName() + " is processing this list" + list);
} catch (InterruptedException e) {
e.printStackTrace();
}
}
}

最佳答案

Guava 有方法 Lists.partitionIterables.partition做你要求的事情。假设您有一个很大的列表并希望以 5 个为一组处理它,您可以这样做:

int batchSize = 5;
Lists.partition(list, batchSize)
.parallelStream()
.forEach(batch -> invokeList(batch));

关于方法参数列表的Java 8并行流,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/55105749/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com