そこで、2 つのベクトルを加算する単純なスレッドを作成しています。これには、ベクトルの長さとスレッド数の 2 つのコマンド ライン引数が必要です。私が理解していることから、プログラムはこれら2つの引数を取り、それらに従ってベクトルを合計し、スレッドの数とベクトルの長さに応じてパフォーマンスを示すことになっています。これは私が立ち往生しているところです。これまでのところ、配列を使用して 2 つのベクトルを加算し、時間を表示するスレッドを作成する基本的なコードを作成しましたが、コマンド ライン引数を使用して実装するのに問題があります。これが私がこれまでに行ったことです。
public class Addition
{
public static void main(String args[])
{
int NoOfThreads = Integer.parseInt(args[0]);
VectorLength = Integer.parseInt(args[1]);
System.out.println("Start time: " + System.nanoTime());//print start time
Thread v1 = new Vector();
Thread v2 = new Vector();
Thread vsum = new Vector();
//start all threads
v1.start();
v2.start();
vsum.start();
//vsum2.start();
System.out.println("End time: " + System.nanoTime());//print end time
}
}
public class Vector extends Thread
{
//create vectors and assign them arbitrary values
int v1[] = {12,13,14,15,16,17,18};
int v2[] = {15,19,20,22,24,26,28};
//initialise the vector sums to zero
int vsum = 0;
public void run()
{
//loop to add up the elements of the first vector
if(Integer.parseInt(args[0])> 0 )
{
for(int i = 0; i < v1.length; i++)
{
for(int j=0; j<v2.length; j++)
{
vsum = v1[i]+ v2[j];
System.out.println("Current total of vector 1: " + vsum);
try
{
System.out.println(System.nanoTime());
Thread.sleep(100);
}
catch (InterruptedException e)
{}
}//for
}
}
}
}