08/06/10 21:28:06
>>95
要はスレッドに引数を与えて処理完了を待てばいい(結果は戻さず、垂れ流しでいい)ってことでしょ。
import java.util.ArrayList;
...
final int[][] a = new int[3][3];
final int[][] b = new int[3][3];
... (行列a、bの要素に値を入力) ...
ArrayList threads = new ArrayList(3 * 3);
for (int i = 0; i < 3; i++) {
final int r = i;
for (int j = 0; j < 3; j++) {
final int c = j;
Thread th = new Thread(new Runnable() { // final指定されたa, b, r, cが渡される(参照できる)
public void run() {
int ab_rc = 0;
for (int k = 0; k < 3; k++) ab_rc += a[r][k] * b[k][c]; // こんなんだっけw
System.out.println("("+ r +","+ c +") : "+ ab_rc); // とか、なんか適当に表示?
}
});
threads.add(th);
}
}
for (Thread thread : threads) thread.join();
...
動作未確認。古くさい部分とかあったらむしろ教えて