태그: 스레드풀
4편
-
C++ 고급 멀티스레딩 | 스레드 풀·Work Stealing
C++ 스레드 풀·Work Stealing·Lock-Free 큐·메모리 순서·Thread-Local Storage 등 고급 멀티스레딩 패턴. 실제 문제 시나리오부터 프로덕션 패턴까지, 1000줄 분량의 실전 가이드.
-
C++17 스레드 풀 만들기: 작업 큐, future 반환, 우선순위·취소, 요청마다 스레드를 만들 때의 문제
요청마다 std::thread를 만들다 스레드가 1000개로 불어난 상황에서 출발해 C++17 스레드 풀을 작업 큐, future 반환 submit, 우선순위, graceful shutdown 순서로 구현합니다. 참조 캡처 use-after-free, 중첩 submit 데드락, 백프레셔 부재도 다룹니다.
-
C++ 작업 큐 설계: 워크 스틸링으로 스레드 풀 성능 끌어올리기
메인 스레드에서 무거운 작업을 돌려 UI가 멈추는 문제를 조건 변수 기반 작업 큐와 스레드 풀로 푸는 과정을 구현합니다. std::future로 결과 받기, 부하 불균형을 줄이는 워크 스틸링, spurious wakeup과 shutdown 타이밍, 예외로 워커가 죽는 문제도 다룹니다.
-
C++ condition_variable로 작업 큐 만들기: 허위 깨움 처리와 스레드 풀
작업 큐를 폴링하며 CPU를 낭비하던 구조를 condition_variable로 바꿔 작업이 들어올 때만 스레드를 깨우는 방법을 설명합니다. predicate를 넣은 wait로 허위 깨움을 처리하는 법, 스레드 안전 큐와 스레드 풀 구현, lock_guard를 쓰면 안 되는 이유를 다룹니다.