【发布时间】:2015-11-30 06:24:02
【问题描述】:
我有一个包含约 5 000 个对象的数组。对于每个对象,我计划执行一些逻辑。每个对象的逻辑都是相同的。我想尽可能快地完成它,所以我来到了 ExecutorService,它位于 java.util.cuncurrent 中。我决定在一个线程中处理 100 个对象,所以我将我的总数 (~5k) 划分为多个间隔
private List<Integer> divideIntoIntervals(Integer total)
{
List<Integer> intervals = new ArrayList<Integer>();
intervals.add(0);
int n = total / PART_SIZE;
int leftover = total % PART_SIZE;
if(n!=0)
{
intervals.add(PART_SIZE);
for (int i=2; i<=n; i++)
{
intervals.add(PART_SIZE*i);
}
intervals.add(PART_SIZE*n+leftover);
}
return intervals;
}
因此,数组将类似于:0、100、200、300、...、5000、5041。 你会建议什么样的最新清单? 我正计划创建逻辑,它会寻找我的当前数组以供另一个间隔使用。
【问题讨论】:
-
你可以创建四个类似这样的runnable,executorService.execute(new Runnable(){//获取某个范围内的列表值并执行任务})
标签: java multithreading java.util.concurrent