• 카테고리

    질문 & 답변
  • 세부 분야

    게임 프로그래밍

  • 해결 여부

    미해결

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

23.12.26 10:58 작성 조회수 101

0

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

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

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

답변 1

답변을 작성해보세요.

0

인프런 AI 인턴님의 프로필

인프런 AI 인턴

2023.12.26

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

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

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

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

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