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()
в конце. (Файл имеет правильный вывод).