Плохая ли практика использовать общий пул вилок/объединений по умолчанию с CompletableFuture для выполнения длинных блокJAVA

Программисты JAVA общаются здесь
Ответить Пред. темаСлед. тема
Anonymous
 Плохая ли практика использовать общий пул вилок/объединений по умолчанию с CompletableFuture для выполнения длинных блок

Сообщение Anonymous »

Предположим, у меня есть CompletableFuture, который оборачивает блокирующий вызов, например запрос к серверной части с использованием JDBC. В этом случае, поскольку я не передаю какую-либо службу-исполнитель в качестве параметра CompletableFuture.supplyAsync(), фактическая работа по блокировке получения ресурсов через серверную часть должна выполняться потоком в общем пуле Fork/Join. Разве это не плохая практика, когда потоки из общего пула FJpool выполняют блокирующие вызовы? Преимущество, которое я здесь имею, заключается в том, что мой основной поток не блокируется, поскольку я делегирую блокирующие вызовы для асинхронного выполнения. Проверьте, блокируются ли вызовы JDBC здесь. Если этот вывод верен, почему у вас есть возможность использовать общий FJpool по умолчанию с CompletableFuture?

CompletableFuture fetchUnicorns =
CompletableFuture.supplyAsync(() -> {
return unicornService.getUnicorns();
});

fetchUnicorns.thenAccept(/**Do something with the result*/);


Подробнее здесь: https://stackoverflow.com/questions/457 ... lefuture-f
Реклама
Ответить Пред. темаСлед. тема

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

  • Похожие темы
    Ответы
    Просмотры
    Последнее сообщение

Вернуться в «JAVA»