Я использую JerseyClient для асинхронных вызовов на http-сервере и непосредственно создаю Futures для хранения ответа. Это может быть даже пакетный вызов, в этом случае я создаю список фьючерсов.Создание фьючерсов без ExecutorService или FutureTask
Это прекрасно работает, но меня беспокоит использование процессора и количество потоков, поскольку я не создаю пул потоков с помощью службы Executor, и я не использую FutureTask <> для создания фьючерсов.
Небольшой фрагмент кода, как я построения каждого будущего:
Future<Response> response = requestBuilder.async().get();
ли эти опасения справедливы? Можно ли продолжать этот подход? Будет ли этот подход не масштабироваться?
Другая проблема заключается в том, что get() никогда не может быть выполнен на некоторых из этих фьючерсов? Это приведет к появлению нерестовых нитей, которые никогда не будут убиты, потому что не выполняются ни get(), ни cancel() для фьючерсов, работающих в этих потоках?