Нет описания

CompletableFutureBuilder.java 1.2KB

12345678910111213141516171819202122232425262728293031323334353637383940
  1. package fr.natan.akkastreamfileprocessingapi.futurecompleteness;
  2. import scala.collection.IndexedSeq;
  3. import scala.concurrent.Future;
  4. import java.util.concurrent.CompletableFuture;
  5. import java.util.concurrent.Executors;
  6. public class CompletableFutureBuilder<T> {
  7. public static<T> CompletableFuture<T> buildcompletableFuture1(Future<T> futureT) {
  8. CompletableFuture<T> completableFuture = new CompletableFuture<>();
  9. Executors.newSingleThreadExecutor().submit(() -> {
  10. while(!futureT.isCompleted()){
  11. Thread.sleep(100);
  12. }
  13. completableFuture.complete(futureT.value().get().get());
  14. return null;
  15. });
  16. return completableFuture;
  17. }
  18. public static<T> CompletableFuture<IndexedSeq<T>> buildcompletableFuture2(Future<IndexedSeq<T>> futureListT) {
  19. CompletableFuture<IndexedSeq<T>> completableFuture = new CompletableFuture<>();
  20. Executors.newSingleThreadExecutor().submit(() -> {
  21. while(!futureListT.isCompleted()){
  22. Thread.sleep(100);
  23. }
  24. completableFuture.complete(futureListT.value().get().get());
  25. return null;
  26. });
  27. return completableFuture;
  28. }
  29. }

Powered by TurnKey Linux.