태그: thread-pool
4편
-
C++ 스레드 풀 직접 구현하기: 작업 큐, packaged_task로 결과 받기, 종료 시 데드락
조건 변수로 작업을 기다리는 워커 루프와 작업 큐로 C++ 스레드 풀을 직접 만들고, packaged_task와 future로 결과와 예외를 돌려받게 확장합니다. 병렬 계산·파일 처리·웹 크롤러 예제와 종료 시 데드락, 적절한 스레드 수 정하기도 다룹니다.
-
C++17 스레드 풀 만들기: 작업 큐, future 반환, 우선순위·취소, 요청마다 스레드를 만들 때의 문제
요청마다 std::thread를 만들다 스레드가 1000개로 불어난 상황에서 출발해 C++17 스레드 풀을 작업 큐, future 반환 submit, 우선순위, graceful shutdown 순서로 구현합니다. 참조 캡처 use-after-free, 중첩 submit 데드락, 백프레셔 부재도 다룹니다.
-
C++ 멀티스레드 성능 튜닝 | 락 프리·작업 훔치기·스레드 풀 [#51-3]
스레드를 늘렸는데 오히려 느려지는 원인을 락 경합과 false sharing에서 찾고, 캐시 라인 정렬, ABA 문제를 고려한 lock-free 스택, SPSC 큐, 작업 배치와 work stealing 스레드 풀로 개선하는 과정을 C++ 코드로 다룹니다.
-
C++ std::thread와 jthread: 스레드 풀 구성과 성능 비교
std::thread에 함수, 람다, 인자를 넘기는 법과 std::ref가 필요한 이유, join과 detach로 수명을 관리하는 법, 예외가 나도 스레드를 정리하는 ThreadGuard와 C++20 jthread, mutex와 condition_variable 기초까지 멀티스레딩의 첫 단계를 다룹니다.