Notice
Recent Posts
Recent Comments
Link
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | 4 | 5 | 6 | 7 |
8 | 9 | 10 | 11 | 12 | 13 | 14 |
15 | 16 | 17 | 18 | 19 | 20 | 21 |
22 | 23 | 24 | 25 | 26 | 27 | 28 |
29 | 30 | 31 |
Tags
- JPA
- 자바 ORM 표준 JPA 프로그래밍
- 친절한 SQL 튜닝
- HandlerMethodArgumentResolver
- ksql
- Stream
- git
- 리눅스
- intellij favorites
- Spring Cloud Netflix
- vue.js
- java
- javascript case
- @Transactional Propagation
- findTopBy
- 자바 ORM 표준 JPA 프로그래밍 정리
- intellij 즐겨찾기
- @TransactionalEventListener
- 원격 브랜 삭제
- IntelliJ
- aws
- 리팩토링 2판
- Linux
- multipart테스트
- 백명석님
- ksqldb
- #docker compose
- 마이크로 서비스
- intellij 핵심 단축키
- CompletableFuture
Archives
- Today
- Total
시그마 삽질==six 시그마
CompletableFuture 본문
/*
supplyAsync() 반환값 있는 비동기 작업, runAsync() : 반환값 없는 비동기 작업
get(): 블로킹 get
join(): 블로킹 get+ 예외발생시 throw exception
thenApply() 리턴 있는 동기 콜백, thenApplyAsync() 리턴 있는 비동기 콜백
thenAccept() 리턴 없는 동기 콜백, thenAcceptAsync()리턴 없는 비동기 콜백
thenCompose() : 여러개의 작업들을 순차 실행
thenCombine() : 여러개의 작업들을 병렬 실행
anyOf() :작업들중 가장 빠른거 1개 결과 가져옴
allOf(): 작업들(3개이상도 가능) 병렬실행하고 결과 조합
*/
ExecutorService executor = Executors.newFixedThreadPool(4);
CompletableFuture<Integer> future1 = CompletableFuture
.supplyAsync(() -> {
try {
Thread.sleep(5000L);
log.info("supplyAsync1:{}",Thread.currentThread().getName());
} catch (InterruptedException e) {
e.printStackTrace();
}
return 1;
});
CompletableFuture<Integer> future2 = CompletableFuture
.supplyAsync(() -> {
log.info("SupplyAsync2:{}",Thread.currentThread().getName());
return 2;
},executor)
.thenApplyAsync(number -> {
log.info("thenApplyAsync2:{}",Thread.currentThread().getName());
return number + 3;
},executor);
//CompletableFuture.allOf(future1, future2);
Integer number = future1.thenCombine(future2, (a, b) -> a + b).join();
System.out.println("number = " + number);
'프로그래밍 > Java' 카테고리의 다른 글
java stream grouping() 후 각 그룹별 특정조건에 따라 한개씩만 추출 (0) | 2020.10.30 |
---|---|
Stream collect 3탄(그룹핑후 매핑 및 집계) (0) | 2020.08.27 |
Stream collect 2탄(그룹핑) (0) | 2020.08.27 |
Stream collect 1탄 (0) | 2020.08.27 |
[mac] java 버전 변경 jenv (0) | 2020.08.18 |
Comments