사용자 도구

사이트 도구


java:8:completable_future

차이

문서의 선택한 두 판 사이의 차이를 보여줍니다.

차이 보기로 링크

양쪽 이전 판 이전 판
다음 판
이전 판
java:8:completable_future [2020/08/07 12:41]
kwon37xi [참조]
java:8:completable_future [2020/11/09 11:47] (현재)
kwon37xi
줄 1: 줄 1:
 ====== Java 8 CompletableFuture ====== ====== Java 8 CompletableFuture ======
-[[https://docs.oracle.com/javase/8/docs/api/java/util/concurrent/CompletableFuture.html|CompletableFuture (Java Platform SE 8 )]]+  * [[https://docs.oracle.com/javase/8/docs/api/java/util/concurrent/CompletableFuture.html|CompletableFuture (Java Platform SE 8 )]] 
 +  * [[https://github.com/spotify/completable-futures|spotify/completable-futures: Utilities for working with futures in Java 8]] 
 + 
 +===== Thread Pool (Executor) ===== 
 +  * ''supplyAsync'' 등의 메소드 호출시 쓰레드 풀을 명시하지 않으면 [[java:concurrent:forkjoinpool|Java ForkJoinPool]]의 ''commonPool()'' 이 사용된다. 
 +  * 개발자가 쓰레드 풀을 제어할 수 없다는 것은 나중에 문제가 될 수 있다. 
 +  * 따라서, 항상 [[java:concurrent:executorservice|Java ExecutorService]] 를 명시적으로 사용하여 쓰레드 풀을 지정하도록 한다. 
  
 ===== ParallelStream vs. CompletableFuture ===== ===== ParallelStream vs. CompletableFuture =====
줄 7: 줄 14:
   * **CompletableFuture** : 반면 작업이 **I/O를 기다리는 작업을 병렬로 실행**할 때는 ''CompletableFuture''가 더 많은 유연성을 제공하며 대기/계산(W/C)의 비율에 적합한 스레드 수를 설정할 수 있다. 특히 스트림의 게으른 특성 때문에 스트림에서 I/O를 실제로 언제 처리할 지 예측하기 어려운 문제도 있다.   * **CompletableFuture** : 반면 작업이 **I/O를 기다리는 작업을 병렬로 실행**할 때는 ''CompletableFuture''가 더 많은 유연성을 제공하며 대기/계산(W/C)의 비율에 적합한 스레드 수를 설정할 수 있다. 특히 스트림의 게으른 특성 때문에 스트림에서 I/O를 실제로 언제 처리할 지 예측하기 어려운 문제도 있다.
   * [[http://fahdshariff.blogspot.kr/2016/06/java-8-completablefuture-vs-parallel.html|fahd.blog: Java 8: CompletableFuture vs Parallel Stream]]   * [[http://fahdshariff.blogspot.kr/2016/06/java-8-completablefuture-vs-parallel.html|fahd.blog: Java 8: CompletableFuture vs Parallel Stream]]
 +
 +===== 여러 CompletableFuture를 하나로 합쳐주기 =====
 +  * [[https://github.com/kwon37xi/research-java-9-10-11/blob/main/src/main/java/kr/pe/kwonnam/research/java/completablefuture/CompletableFutureCollector.java|CompletableFutureCollector.java]]
  
 ===== 참조 ===== ===== 참조 =====
java/8/completable_future.1596771700.txt.gz · 마지막으로 수정됨: 2020/08/07 12:41 저자 kwon37xi