Подскажите, пожалуйста, как лучше сделать в моем случае. Хочу распараллелить задачи, но получается только с 1 потоком. Постоянно нужно ждать когда получу результат d (future.get()). А можно как-то сделать так, чтобы поток который ждет результат оставался ждать, а другой поток продолжал дальше по циклу выполнять свою работу?
List<Integer> index = new ArrayList<>();
///....///
List<List<Integer>> dis = new ArrayList<>();
for (int i = 0; i < links.size() - 1; i++) {
if (index.get(i) == 0) {
..////...
List<Integer> list = new ArrayList<>();
for (int j = i + 1; j < links.size(); j++) {
URL oneURL = new URL(links.get(i));
URL twoURL = new URL(links.get(j));
Task task = new Task(oneURL, twoURL);
ExecutorService executor = Executors.newFixedThreadPool(1);
Future<Double> future = executor.submit(task);
Double d = future.get();
executor.shutdown();
if (d > k) {
list.add(j);
index.set(j, 1);
}
}
dis.add(list);
}
}