태그: Data Race
2편
-
Data Race 잡는 법: Mutex와 Atomic 중 뭘 써야 할까
카운터가 깨지거나 check-then-act로 재고가 어긋나는 Data Race 사례를 두고 mutex와 atomic 중 무엇을 쓸지 판단 기준을 제시합니다. memory_order 요약, CAS 개념, 순서 잠금과 std::lock으로 데드락을 피하는 법도 다룹니다.
-
C++ 멀티스레드 Asio의 딜레마 | Data Race와 Mutex의 한계 [#2]
io_context 하나를 스레드 풀에서 여러 run()으로 돌릴 때 같은 세션의 핸들러가 동시에 실행되어 data race가 생기는 구조, 핸들러 안에서 mutex를 잡으면 처리량이 떨어지는 이유, 락을 잡은 채 다른 핸들러를 기다리다 빠지는 데드락을 설명합니다.