해결된 질문
작성
·
307
0
안녕하세요. 궁금한 게 있습니다.
_popCount에 관해 질문이 몇 개 보이는데 좀 다른 내용이지만 저도 관련해서 질문합니다.
_popCount 변수가 Pop 함수를 실행하는 쓰레드 개수를 추적하는 것인데요,
Pop함수를 실행하는 쓰레드의 개수가 아닌,
Node* oldHead = _head;
이 코드에서 얻게 되는 동일한 포인터를 참조하는 쓰레드의 카운트를 추적해야 하는게 아닌가 하는 의문이 듭니다.
이를테면 Pop을 실행하는 쓰레드가 한 50개가 있다고 하면 계속해서 _popCount는 1이 될 수가 없을 거 같은데요, 실제로 테스트 해봤는데 Delete 함수로 진입을 안 합니다.
제가 잘 못 생각하는 부분이 있을까요?
답변 1
0
예제 코드가 엄청 Push/Pop을 많이 하면 특정 부분이 잘 호출되지 않을 수는 있는데요.
내용 자체는 제가 직접 만든게 아니라 유명 저서에 나온 것을 발췌한 부분이고
LockFree 알고리즘은 워낙 복잡하고 실수의 여지가 많아 직접 만들어서 사용할 일은 없습니다.
그러니 단순히 참고용으로만 넘어가주시면 되겠습니다.