CountdownLatch는
- 여러 작업이 서로 독립적이고, 메인 스레드가 "모든 작업이 끝났는가?"만 판단할 때
- 각 작업의 결과가 중요하지 않거나, 결과는 별도로 처리될 때
- 예: 5개의 리소스 로더가 비동기로 로딩되고, 모든 로딩이 끝난 뒤 UI를 초기화해야 할 때
std::async와 비교했을 때
std::async | CountdownLatch | |
목적 | 특정 작업의 결과를 기다림 | 여러 개 작업의 완료 자체를 기다림 |
의존성 | 작업 간 데이터 흐름 기반 의존성 | 주로 단일 지점에서 여러 작업의 완료만 필요 |
사용 방식 | 개별 future 객체로 개별 작업 제어 | latch 카운트를 줄여가며 집단 작업 동기화 |
결과 전달 | future.get()으로 값 반환 | 결과 없음 (단순 동기화) |
'프로그래밍 언어 > C++' 카테고리의 다른 글
멀티 쓰레드 - std::promise (0) | 2025.05.14 |
---|---|
멀티쓰레딩 - std::async() (0) | 2025.05.14 |
멀티쓰레딩 - Condition Variable (0) | 2025.05.13 |
멀티 쓰레딩 - try_lock (0) | 2025.05.13 |
멀티 쓰레딩 - std::lock_guard (0) | 2025.05.12 |