模拟切割数组数据,稍加修改可以应用于多线程调用,将System.out.println()的部分替换成线程调用即可,例子中13031就相当于数组的大小,10相当于10个线程
public static void main(String[] args) {
int totalNum = 13031;
int theadNum = 10;
int everyNum = totalNum / theadNum;
for (int i = 0; i <= theadNum - 1; i++) {
if (i == 0) {
System.out.println("第一次循环:start=" + i + ";end=" + everyNum);
} else if (i == theadNum - 1) {
System.out.println("最后的循环:start=" + (i * everyNum + 1) + ";end=" + (totalNum - 1));
} else {
System.out.println("中间的循环:start=" + (i * everyNum + 1) + ";end=" + (i * everyNum + everyNum));
}
}
}
打印结果,数组角标从0开始,13030结束,所有的13031个元素都被切割到
第一次循环:start=0;end=1303
中间的循环:start=1304;end=2606
中间的循环:start=2607;end=3909
中间的循环:start=3910;end=5212
中间的循环:start=5213;end=6515
中间的循环:start=6516;end=7818
中间的循环:start=7819;end=9121
中间的循环:start=9122;end=10424
中间的循环:start=10425;end=11727
最后的循环:start=11728;end=13030