多线程数组内容?

Multithreading Array Content?

这是为了完成一项大学作业。如果这是在正确的轨道上,我只是想要一些输入。分配要求使用多个线程来添加数组内容。这是我推断的是准确的,但同样,我不确定。任何建议或意见都会很棒。 :)

我不知道这是否在正确的轨道上,所以我希望得到一些专业的批评。

import java.util.*;

public class threadtest1 extends Thread
{
    int sum, sum2;
    int N = 5;

    int [] array = {1,3,2,4,5,6,7,8,9,10};
    int [] temp = new int [N];

    public static void main (String[] args)
    {
        threadtest1 run = new threadtest1();
        run.go();
    }

    public void go()
    {
        threadtest1 t1 = new threadtest1();
        threadtest1 t2 = new threadtest1();
        threadtest1 t_Total = new threadtest1();


        //To seperate and calculate the array by thread:        


        /****   FOR  THREAD 1    ****/
        t1.start();
        temp = Arrays.copyOfRange(array, 1,5);
        System.out.println("Temp : " + temp.length);

        for (int j = 0; j < temp.length; j++)
            {
                //sum = temp.get(i);
                sum += sum + j;
                System.out.println("T1 : " + sum);
            }

        /****   FOR  THREAD 2    ****/
        t2.start();
        temp = Arrays.copyOfRange(array, 6, 10);

        for (int k = 0; k < temp.length; k++)
        {
            //sum = temp.get(i);
            sum2 += sum2 + k;
            System.out.println("T2 : " + sum2);
        }

        /****   FOR  THREAD_TOTAL    ****/
        t_Total.start();
        sum = sum + sum2;
        System.out.println("T_Total: " + sum);
    }

}

不,你根本没有走在正确的轨道上。当你启动一个线程时,它的 run() 方法被执行(在一个单独的线程中)。默认情况下,run() 方法什么都不做。而且您还没有覆盖此方法。因此,您启动了两个什么都不做的线程,并在主线程中对数组执行计算。

您应该重新阅读 Java concurrency tutorial