C++20의 Strongly Happens Before: 메모리 모델 풀어보기
2025-09-01
이 글에서는 C++20에 새롭게 도입된 "Strongly Happens Before" 관계를 자세히 살펴보고 C++ 메모리 모델의 어려운 문제를 해결하는 방법을 설명합니다. 간단한 멀티스레드 프로그램 예제를 사용하여 수정 순서, 일관성 순서, "Strongly Happens Before" 관계가 동시 실행 순서를 어떻게 제약하는지 단계적으로 설명합니다. 또한 C++ 메모리 모델을 위반하는 것처럼 보이는 실행이 Power 아키텍처에서 허용되는 이유를 분석하고, "Strongly Happens Before"가 이러한 불일치를 어떻게 수정하여 최종적으로 모든 `memory_order::seq_cst` 연산에 대해 단일 전역 순서를 보장하는지 설명합니다.
개발