Описание тега completable-future

В Java 8 - будущее, которое может быть завершено явно (установка его значения и статуса) и может включать зависимые функции и действия, которые запускаются после его завершения.
1 ответ

Как я могу сделать исключение без проверки, выброшенное из потока для распространения в основной поток?

Я не могу найти способ (ни через SO, ни в отладке моего кода) разрешить распространение исключения, созданного из протектора, в основной поток. Я уже пытался использовать Thread.setUncaughtExceptionHandler() и используя CompletableFuture: .exception…
09 ноя '17 в 15:27
3 ответа

Каков рекомендуемый способ ожидания завершения завершаемых будущих потоков?

Я использую CompletableFuture как показано ниже в коде. Но что касается того, как я должен ждать, пока не закончатся все работающие объекты, я нашел два пути, и я не знаю разницу между ними, и какой из них является лучшим? Они заключаются в следующе…
2 ответа

Guice выбрасывает OutOfScopeException при выполнении CompletableFuture

Из потока темы запроса, CompletableFuture s должны быть выполнены задачей, выполняемой в исполнителе. Поставщик предоставляет услугу для конкретного домена MessageService которая является сессионной областью. Эта услуга вводится Guice. public class …
16 ноя '15 в 15:44
1 ответ

Блок Java CompletableFuture.complete()

У меня проблема при использовании CompletableFuture в Java. У меня есть 2 запроса на выбор, которые заполняются при получении ответов от сервера. В соединительной резьбе (THREAD-1) (использую реактор) я использую: if(hasException) { selectFuture.com…
0 ответов

Почему методы CompletableFuture не возвращают CompletionState

Тип возврата любого из handle или же whenComplete методы на CompletableFutureопять CompletableFuture вместо CompletionStage, Однако, если вы завершите CF в любом из этих возвращенных экземпляров, код handle не выполняется. Fe: val handled = AtomicBo…
26 фев '19 в 09:00
1 ответ

Java CompletableFuture get Метод

У меня возникли проблемы с пониманием CompletableFuture. Я не понимаю метод get(). Пожалуйста, поправьте меня, если я ошибаюсь, но там написано: "Если нужно, дождитесь завершения этого будущего, а затем вернет его результат". Так что, если я не возв…
11 окт '18 в 16:25
0 ответов

Является ли целесообразным объединение в цепочку нескольких вызовов CompletableFuture, каждый со своей собственной логикой исключений?

В моем проекте есть поток, который асинхронно загружает ресурс, затем выполняет над ним операцию и использует опрос заданий, чтобы получить новый ресурс со всеми выполненными операциями. Я написал каждую из этих вещей в завершаемом будущем, создав ц…
05 фев '19 в 16:58
3 ответа

CompletableFuture обертка

У меня есть асинхронный метод asyncClass.getChild("test", listChild -> { if (listChild.isOk()) { List<String> list = listChild.isSuccess().getData() } return null; }); Как я могу обернуть этот асинхронный вызов в CompletableFuture? final Co…
1 ответ

CompletableFuture in Spring MVC

Я рассматриваю возможность использования CompletableFuture начать обработку чего-либо в базе данных. Операция займет несколько секунд, но я хочу вернуть управление обратно в браузер, не дожидаясь его завершения. Мой вопрос: это безопасно? Есть ли ри…
19 янв '18 в 15:45
2 ответа

Java 8 Concurrency Простейшая каноническая форма для основной задачи

У меня два вопроса: 1. Какая простейшая каноническая форма для Callable как задача в Java 8, захват и обработка результата? 2. В приведенном ниже примере, каков наилучший / самый простой / понятный способ держать основной процесс открытым, пока все …
17 мар '16 в 19:22
0 ответов

Как бросить проверенное исключение в CompletableFuture?

Я использовал статический метод supplyAsync() чтобы получить CompletableFutureи назовите его whenComplete() способ справиться с результатом и исключением. whenComplete() принимает BiConsumer в качестве параметра, и BiConsumerВторой параметр является…
1 ответ

Упорядоченное выполнение многих CompletableFuture.allof(), оставаясь неблокирующим

У меня есть этот случай, когда есть 10 или более задач, которые сгруппированы во многие группы. Внутри этих групп все должно выполняться одновременно, но поскольку каждой группе нужны результаты предыдущей группы (за исключением первой группы), мне …
16 фев '17 в 23:21
1 ответ

Java CompletableFuture, когда вызывается completetableFuture.handle?

Q1. Мое понимание completableFuture.handle вызывается, если будущее завершено либо нормально, либо исключительно. Но как насчет сценария тайм-аута? Q2. Где проверить настройку тайм-аута по умолчанию для CompletetableFuture? Как это изменить? Что про…
09 авг '18 в 01:14
0 ответов

Вызов завершённого будущего в цикле while для byteArrayOutputStream не работает должным образом

CompletableFuture прекрасно работает с простой асинхронной задачей, но я попробовал то же самое в цикле while при чтении файла и записи в несколько файлов, как показано ниже: BufferedInputStream bin = null; ReadableByteChannel channel = null; int bu…
19 апр '18 в 09:10
1 ответ

Заменить Futures.successfulAsList на Java 8 CompletableFuture?

Я ищу канонический код для замены гуавы Futures.successfulAsList() с Java 8 CompletableFuture код. Я думаю CompletableFuture.allOf() кажется заменой Futures.allAsList(), но я не вижу ничего похожего successfulAsList(),
1 ответ

Как я могу асинхронно присоединиться к первоначальному потоку после завершения?

Хотя я не думаю об этом как о конкретном вопросе Ваадина. Все, что мне действительно нужно сделать, - это вернуться в нить, которую будущее создаст по завершении. (ClickHandler) (event) -> { log().debug( "current Thread {}", Thread.currentThread(…
04 май '16 в 19:01
4 ответа

Java 8 CompletableFuture, Stream и Тайм-ауты

Я пытаюсь обрабатывать некоторое количество данных одновременно, используя CompletableFuture а также StreamПока у меня есть: public static void main(String[] args) throws InterruptedException, ExecutionException { System.out.println("start"); List&l…
2 ответа

Использование поставщика в CompletableFuture дает другой результат, чем использование лямбда

Я создал небольшой пример чтения текстового файла и заключил вызов в CompletableFuture, public class Async { public static void main(String[] args) throws Exception { CompletableFuture<String> result = ReadFileUsingLambda(Paths.get("path/to/fi…
27 дек '16 в 10:25
0 ответов

CompletableFuture thenCompose VS thenComposeAsync

Основываясь на разных постах и ​​статьях, я знаю только то, что: thenCompose будет работать в том же потоке с предыдущим этапом, тогда как thenComposeAsync попытается запустить новый поток по сравнению с предыдущим этапом. Даже Java 8 в действии пре…
23 май '18 в 15:39
3 ответа

CompletableFuture: несколько задач

Как я могу асинхронно выполнить 20 выполняемых задач (или 1 задачу 20 раз), используя 5 CompletableFutures? Вот что у меня есть: Runnable task = () -> { long startTime = System.currentTimeMillis(); Random random = new Random(); while (System.curr…