태그: concurrency
4편
-
C++ shared_future | 여러 스레드에서 future 결과 공유
std::future는 get()을 한 번만 부를 수 있어 여러 스레드가 같은 결과를 기다리면 문제가 됩니다. share()로 shared_future를 만들어 설정값이나 지연 계산 결과를 여러 워커가 공유하는 방법과, 예외 전파·스레드 안전성의 범위를 예제로 설명합니다.
-
Rust 동시성 | Thread, Channel, Arc, Mutex
Rust 동시성 프로그래밍. thread::spawn과 move 클로저로 데이터 넘기기, 채널(mpsc)로 메시지 주고받기, Arc<Mutex<T>>로 상태 공유하기, 데이터를 청크로 나눈 병렬 계산 예제를 정리합니다.
-
C++20 counting_semaphore·binary_semaphore: 동시 사용 수 제한과 스레드 간 신호
C++20 counting_semaphore로 연결 풀이나 워커 슬롯의 동시 사용 수를 제한하고, binary_semaphore로 스레드 간 신호를 보내는 방법을 생산자-소비자 예제로 설명합니다. release 누락, 초기값 실수, try_acquire로 대기 없이 시도하는 법도 다룹니다.
-
C++ 메모리 모델: happens-before, memory_order 선택 기준, 데이터 레이스가 UB인 이유
C++11부터 도입된 메모리 모델을 정리합니다. happens-before, synchronizes-with 관계, memory_order(relaxed/acquire-release/seq_cst) 선택 기준, 그리고 데이터 레이스가 왜 정의되지 않은 동작(UB)으로 이어지는지 실전 코드로 설명합니다.