강의

멘토링

커뮤니티

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

공부해보자님의 프로필 이미지
공부해보자

작성한 질문수

[C#과 유니티로 만드는 MMORPG 게임 개발 시리즈] Part4: 게임 서버

SpinLock

가시성에 관하여

해결된 질문

작성

·

183

0

안녕하세요 좋은강의 잘 듣고있습니다.

다름이 아니라 강의를 듣던 중 궁금한 점이 생겨 질문드리게 되었습니다.

_locked 변수는 volatile키워드를 통해 가시성을 보장하고 있으나

_num 변수는 가시성을 보장받지 못하고 있는 상황인데 어떻게 정상작동하나요?

또한 _locked 변수의 volatile 키워드를 제거하여 가시성을 보장받지 못해도 정상작동하네요.

volatile키워드나 메모리베리어를 통한 가시성의 보장은 언제 해주어야하는 것인가요?

읽어주셔서 감사합니다

답변 1

2

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

Lock, Interlocked등을 이용하면 자동으로 가시성과 재배치가 보장되기 때문에 
volatile, memory barrier은 사실 개념만 어렴풋 이해하면 되고
임베디드 쪽과 같은 극한의 상황으로 가지 않는 이상
게임쪽에서는 평소에는 쓸 일이 없습니다. (특히 volatile은 많은 전문가들이 사용하지 말 것을 권고합니다.)

공부해보자님의 프로필 이미지
공부해보자

작성한 질문수

질문하기