Javaでは、オブジェクトをワーカースレッドからメインスレッドに戻す方法は? 例として、次のコードを取り上げます。
main(String[] args) {
String[] inputs;
Result[] results;
Thread[] workers = new WorkerThread[numThreads];
for (int i = 0; i < numThreads; i++) {
workers[i] = new WorkerThread(i, inputs[i], results[i]);
workers[i].start();
}
....
}
....
class WorkerThread extends Thread {
String input;
int name;
Result result;
WorkerThread(int name, String input, Result result) {
super(name+"");
this.name = name;
this.input = input;
this.result = result;
}
public void run() {
result = Processor.process(input);
}
}
result
にバックを渡す方法はmain
?results[i]
this
に渡すのはどうですかWorkerThread
、
workers[i] = new WorkerThread(i, inputs[i], results[i], this);
できるように
mainThread.reults[i] = Processor.process(inputs[i]);