"ForkJoinPool создается с заданным целевым уровнем параллелизма; по умолчанию он равен числу доступных процессоров."
Предположим, что мой ЦП имеет 2 ядра. Итак, число максимальных потоков, созданных ForkJoinPool, равно 4?
Предположим, я выполняю асинхронную операцию, которая возвращает объект будущего в операции al oop (скажем, 10k), которая использует Forkpool по умолчанию ... тогда как много потоков будет создано Forkpool?
List<ListenableFuture<SendResult<String, String>>> cf = new ArrayList<ListenableFuture<SendResult<String, String>>>();
future = kafkaTemplate.send(topicName, message);
cf.add(future);
i++;
future.addCallback(new ListenableFutureCallback<SendResult<String, String>>() {
@Override
public void onSuccess(SendResult<String, String> result) {
syso("sent success");
}
@Override
public void onFailure(Throwable ex) {
System.out.println(" sending failed");
}
});
И, в каком-то другом классе, я проверяю, закончилось ли все будущее или нет:
for (ListenableFuture<SendResult<String, String>> m : myFutures) {
m.get();
}