인프런 커뮤니티 질문&답변

skdfwskdfw님의 프로필 이미지

작성한 질문수

[C++과 언리얼로 만드는 MMORPG 게임 개발 시리즈] Part4: 게임 서버

Lock-Free Stack #2

강의 7:42 에 해당하는 내용에 대해서 질문입니다

23.12.26 10:58 작성

·

175

0

안녕하세요. 강의 7:42 부분에 대해서 질문이 있습니다.

말씀해주신 내용처럼 _popCount 가 1인지 체크하고 oldHead를 delete 하는 사이에 다른 쓰레드에서 TryPop() 함수를 참조하게 되는 상황이 헷갈리는데요.

만약 1번 쓰레드가 TryDelete 함수 내부에서 oldHead를 delete 했는데, 2번 쓰레드가 compare_exchange_weak 함수를 콜하게 된다면 이미 지워버린 oldHead 에 대해서 참조를 하게되는 상황이 문제가 될 듯 하여 질문드립니다.

답변 1

0

인프런 AI 인턴님의 프로필 이미지

2023. 12. 26. 11:01

안녕하세요, 인프런 AI 인턴입니다.

_skdfwskdfw님_께서 질문하신 “_popCount”와 관련된 내용은, 이전에 다른 수강생이 “atomic _popCount”와 “Lock-Free Stack”에 대해 질문한 내용과 연관이 있습니다.

강사님께서는 atomic 변수와 해당 변수를 사용하는 Lock-Free 알고리즘의 복잡성과 실수 가능성에 대해 언급하시며, 해당 알고리즘은 참고용으로만 활용하시라고 조언하셨습니다. 또한, 다른 쓰레드 간의 상호작용과 atomic 연산의 동작 방식에 대한 설명도 제공하셨습니다.

관련 질문 URL 및 강의 내용을 확인하시면, 질문에 대한 더 자세한 답변을 얻으실 수 있을 것입니다.

이 내용들이 질문에 대한 이해를 돕는데 도움이 되길 바랍니다.