将数组输入线程

时间:2015-02-14 04:15:24

标签: java arrays algorithm

我需要将一个数组分成5个部分(最后一个可能不是一个相等的部分),然后输入线程进行并行处理。 尝试如下:

int skip=arr.length/5;
        for(int i=0;i<arr.length;i+=skip){
                int[] ssub;
                if(i+skip>=arr.length){
                    sub=new int[arr.length-1]
                }
                else
                {
                    sub=new int[skip+1];
                }
                System.arraycopy(arr,0,sub,0,sub.length);
                Thread t=new Runnable(barrier,sub){

                };
                t.start();
        }

欢迎任何使其更具功能性并避免使用本地阵列的建议。

1 个答案:

答案 0 :(得分:1)

在组织良好的线程方面做得很好。您应该查看ExecutorService,简单youtube video on ExecutorService

在组织数组方面,您可以将它们非本地拆分,也可以为该项目创建一个队列,Java Queue implementations, which one?

这些线程可能以不同的速度工作,因此建议使用Queue,请查看它们。