본문 바로가기
프로그래밍 언어/C++

countDownLatch는 언제 쓰는게 좋을까?

by 규봉봉이 2025. 5. 14.

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