인프런 영문 브랜드 로고
인프런 영문 브랜드 로고

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

dyl님의 프로필 이미지
dyl

작성한 질문수

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

Lock-Free Stack #1

동기화 문제

작성

·

270

0

질문.1

push 쪽에서
node->next = head; 이 로직이 실행 된 이후
head.compareexchange_weak 이 실행 되기전

pop 이 다른스레드에 의해서 먼저 실행 된다면 _head 값이 달라질것이고 이와 반대 되는 상황도 있을것 같은데

그럴때에도 정상 작동 하는건가요?

 

질문2.

반대로 pop 쪽에서 먼저 실행되고 질문1 처럼 실행 됐을때도 정상 작동 하는 걸까요?

답변 1

1

Rookiss님의 프로필 이미지
Rookiss
지식공유자

물론 그런 부분까지 고려해서 설계된 코드입니다. (제가 한건 아니고 ^^;)
여러가지 끼어드는 상황을 가정하고 분석을 정밀히 해보시기 바랍니다.

dyl님의 프로필 이미지
dyl

작성한 질문수

질문하기