CompletableFuture цепочка не работает должным образом - PullRequest
0 голосов
/ 04 октября 2019

CompletableFuture не работает должным образом, когда я использую операцию ввода-вывода в supplyAsync / thenApply и т. Д. Методы

Я новичок в CompletableFuture, поэтому я предполагаю, что что-то естьчто мне не хватает.

private static void completableTest() {
    CompletableFuture.supplyAsync(() -> {
        GET(); 
        writeToFile("sync");
        System.out.println("sync");
        return "";
    }).thenApply(t -> {
        GET(); 
        writeToFile("apply");
        System.out.println("apply");
        return "";
    }).thenAccept(t -> {
        writeToFile("accept");
        System.out.println("accept");
    });

GET() делает вызов httpGet;

writeToFile() записывает содержимое в файл;

Мой файл также пуст, когда яиспользуйте GET() или замените его на Thread.sleep(). Тем не менее, он работает нормально, если я не использую GET().

ПРИМЕЧАНИЕ. Он отлично работает, когда я использую join() в конце. (Файл имеет правильный вывод).

...