일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 |
- 인출수수료
- 리스트
- 가입
- 심장질환
- 사망
- 교보
- 급성심근경색증
- PythonProgramming
- 웹개발
- 보험료
- 중도인출
- 보험
- 변환
- 파이썬
- 프로그래밍
- javascript
- 납입
- 코딩
- Vue.js
- 교보생명
- 뇌출혈
- jQuery
- Java
- 프론트엔드
- python
- 추가납입
- 수수료
- 문자열
- 특약
- 자바스크립트
- Today
- Total
SeouliteLab
Java에서 CompletableFuture 사용하여 비동기 작업 처리하기 본문
소개:
Java에서 CompletableFuture는 비동기 작업을 효율적으로 처리하는 데 사용됩니다. 이번 글에서는 Java에서 쓰레드를 어떻게 생성하고 실행하며, 필요에 따라 정지시키는지에 대해 알아보겠습니다.
CompletableFuture 소개:
CompletableFuture는 Java에서 비동기적으로 실행되는 작업을 쉽게 구현할 수 있는 클래스입니다. 이 클래스는 Future 인터페이스를 확장하여 비동기 작업의 결과를 처리하는데 유용한 메서드를 제공합니다.
예제 1: CompletableFuture로 간단한 비동기 작업 수행
import java.util.concurrent.CompletableFuture;
public class CompletableFutureExample {
public static void main(String[] args) {
CompletableFuture<Void> future = CompletableFuture.runAsync(() -> {
System.out.println("비동기 작업 실행 중...");
// 비동기 작업 수행
});
// 비동기 작업이 완료될 때까지 대기
future.join();
System.out.println("비동기 작업 완료");
}
}
출력 결과:
비동기 작업 실행 중...
비동기 작업 완료
CompletableFuture 설명:
위 예제에서는 CompletableFuture의 runAsync() 메서드를 사용하여 간단한 비동기 작업을 수행합니다. 이 메서드는 Runnable 객체를 인자로 받아 해당 작업을 별도의 스레드에서 비동기적으로 실행합니다. join() 메서드는 해당 비동기 작업이 완료될 때까지 현재 스레드를 블록시킵니다.
예제 2: CompletableFuture로 비동기 작업 결과 처리
import java.util.concurrent.CompletableFuture;
import java.util.concurrent.ExecutionException;
public class CompletableFutureExample {
public static void main(String[] args) throws ExecutionException, InterruptedException {
CompletableFuture<String> future = CompletableFuture.supplyAsync(() -> {
return "비동기 작업 결과";
});
// 비동기 작업이 완료되면 결과 출력
System.out.println("비동기 작업 결과: " + future.get());
}
}
출력 결과:
비동기 작업 결과: 비동기 작업 결과
CompletableFuture 설명:
두 번째 예제에서는 CompletableFuture의 supplyAsync() 메서드를 사용하여 비동기 작업을 수행하고, 작업이 완료된 후 결과를 가져옵니다. 이때 get() 메서드는 비동기 작업의 결과를 반환하며, 해당 작업이 완료될 때까지 현재 스레드를 블록시킵니다.