1
以下のコードを理解することができません。私の主な問題は、 "a"配列がスレッドの "table"配列に割り当てられた値で更新される理由です。より具体的には、 "a"配列が印刷されない理由を説明したいと思います最初の要素(0,1,2,3 ...)スレッドからの配列の更新
mainメソッドとスレッドのコード:
public class ThreadParSqrt
{
public static void main(String[] args)
{
double[] a = new double[1000];
for (int i = 0; i < 1000; i++)
a[i] = i;
SqrtThread threads[] = new SqrtThread[1000];
for (int i = 0; i < 1000; i++)
{
threads[i] = new SqrtThread(a,i);
threads[i].start();
}
for (int i = 0; i < 1000; i++)
{
try {
threads[i].join();
} catch (InterruptedException e) {
e.printStackTrace();
}
}
for (int i = 0; i < 1000; i++)
{
System.out.println(a[i]);
}
}
}
public class SqrtThread extends Thread
{
private double [] table;
private int index;
public SqrtThread(double [] array, int ind)
{
table = array;
index = ind;
}
public void run()
{
table[index] = Math.sqrt(table[index]);
}
}