inflearn logo
강의

강의

N
챌린지

챌린지

멘토링

멘토링

N
클립

클립

로드맵

로드맵

지식공유

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

SpinLock

원자성 관련 궁금함이 있어 질문드립니다

203

astrape

작성한 질문수 23

0

경합 조건 때문에 원자성을 보장해야 한다고 하셔서 

if (_lock == 0)

     _lock = 1;

위와 같은 코드를 Intetlocked.CompareExchange나 Interlocked.Exchange를 이용해서 한번에 실행하게 하여

원자성을 보장해야한다고 하셨는데 그중에 궁금한점이

2줄, 3줄에 걸쳐서 실행이 되나 모든 과정이 한번에 실행이 되나 경합 조건에 의해서 아주 미세한차이로 같이 접근을 하게 되면

한번에 실행되는것도 동시에 여러번 실행될수도 있을 것 같다는 생각이 드는데

Lock을 걸면 어떤 경우에도 싱글쓰레드처럼 한번만 실행되는것이 보장되는건가요?

network C# unity

답변 1

0

Rookiss

네 맞습니다.
그건 CPU 차원에서 보장을 해주는데
메모리 락이라고 해서 사실상 한 번에
한 쓰레드만 접근해서 메모리 조작을 할 수 있게 막아버립니다.
물론 그만큼 속도도 느립니다.

TLS 질문드립니다.

0

37

2

SpinLock과 컨텍스트스위칭에 대해 질문 남겨요.

0

44

2

Unity Span

0

68

2

XML, Dll 차이점

0

99

2

Session 질문입니다

0

75

1

Write Read 커서 키워드

0

69

1

더미 클라이언트 수에 따른 OnDisconnect 발생

0

66

2

네트워크 Send 전담 스레드 배치

0

95

2

UnhandledException 으로 서버 터지는 경우

0

82

2

컨텐츠 단, 엔진 단

0

100

1

질문 있습니다

0

73

2

C# 게임서버 3D MMORPG

0

141

2

유니티6 버전

0

94

2

receive하는 부분과 send하는 부분의 차이

0

128

2

커서의 위치의 중요성

0

99

2

C++ 전혀 모르는데 C# 서버

0

165

2

강의에 질문이 있습니다

0

83

2

멀티스레드 이해도 질문

0

90

1

500 vs 500

0

122

3

OnAcceptHandler 액션 함수

0

58

1

이 정도 서버의 객관적인 수준이 궁금합니다.

0

186

2

36. Serialization #3 에서 string (name) 코드 수정 질문

0

79

2

외부 컴퓨터와의 통신 방법이 궁금합니다

0

100

1

스핀락 질문.

0

105

2