Проходя асинхронное программирование в Java, я наткнулся на Futures.Насколько я мог понять, мы используем фьючерсы, возвращая объект будущего типа, если мы хотим использовать результат этого асинхронного метода в нашем методе.Как и в моих блоках потоков по какому-то другому требованию, этот асинхронный процесс подхватывается и заменяет заполнитель будущих объектов, чтобы его можно было использовать методом вызывающей стороны.Правильно ли я предположил это?
Но что, если в моем случае использования API, который я создаю, не нуждается в результате асинхронного метода?Например, допустим, мое требование выглядит примерно так:
int addInts(int x, int y) {
int z = x+y;
store_result(x, y, z);
return z;
}
@Async
void store_result(int x, int y, int z) {
//persist these results in some db or call some other api here
}
Так что addInts просто суммирует целые числа и возвращает результат, так как я не хочу ждать, пока результат будет сохранен,Я помещаю это в асинхронный метод, от которого я все равно не очень зависим.
Так что в этом случае мне не нужно правильно использовать фьючерсы?
РЕДАКТИРОВАТЬ: Также зачем мне это нужно?определить пользовательский компонент-исполнитель задач, когда spring по умолчанию создает для вас простой компонент SimpleAsyncTaskExecutor?