gpt4 book ai didi

Java 除法和舍入

转载 作者:行者123 更新时间:2023-12-01 18:12:14 24 4
gpt4 key购买 nike

我希望分割一个数组以并行处理,但是当大小不能很好地除以线程数时(因为它向下舍入),我很难分割数组。我认为我遗漏了一些明显的东西,但我该如何处理呢?我不能直接四舍五入,因为那样它就会超过索引。

final int NUM_THREADS = Integer.parseInt(args[1]);
int size = g.nodes.length / NUM_THREADS;

for( int i = 0; i < NUM_THREADS; i++ ) {
Runnable task = new GraphSortRunnable(i*size, (i+1)*size, g.nodes);
// code continues
}

最佳答案

您可以使用Java8流API。它比自定义拆分更简单:

public class Main {

public static void main(String[] args) throws Exception {
Object[] gnode = new Object[10];
Arrays.stream(gnode).parallel().forEach(Main::processOneNode);
}

public static void processOneNode(Object node){
System.out.println(Thread.currentThread().getName());
}
}

您可以自定义它。请参阅Custom thread pool in Java 8 parallel stream

ForkJoinPool forkJoinPool = new ForkJoinPool(20);
forkJoinPool.submit(() -> Arrays.stream(gnode).parallel().forEach(Main::processOneNode)).get();

关于Java 除法和舍入,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/32129967/

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