Я изучаю технологию fork-join в java и написал следующую программу. Я запускаю цикл for (5 раз), и я хочу запустить содержимое цикла for в отдельных потоках. Это происходит правильно. Проблема в том, что когда все потоки закончены, я хочу вектор размером 5 и должен содержать результат выполнения потока 1 по индексу 0, результат выполнения потока 2 по индексу 1 ........ .... результат выполнения потока 5 в индексе 4. Я чисто визуализирую то, чего хочу достичь, но не знаю синтаксиса для него.Java fork join issue
В настоящее время я просто получаю 1 номер в своем векторе.
import java.util.Random;
import java.util.Vector;
import java.util.concurrent.*;
public class App {
public static void main(String[] args) {
// TODO Auto-generated method stub
ExecutorService executor = Executors.newCachedThreadPool();
Future<Vector<Integer> > futureResult = null;
for(int i = 0; i < 5; i++){
futureResult = executor.submit(new Callable<Vector<Integer> >(){
@Override
public Vector<Integer> call() throws Exception {
Random random = new Random();
int duration = random.nextInt(4000);
Vector<Integer> v = new Vector<Integer>();
v.add(duration);
return v;
}
});
}
executor.shutdown();
try {
System.out.println(futureResult.get());
} catch (InterruptedException | ExecutionException e) {
e.printStackTrace();
}
}
}
ОК спасибо buuuuuuudy Позвольте мне попробовать это ... – VVV
спасибо, приятель, который решил мою проблему. – VVV