inflearn logo
강의

강의

N
챌린지

챌린지

멘토링

멘토링

N
클립

클립

로드맵

로드맵

지식공유

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

메모리 배리어

메모리 베리어 개념이 살짝 헷갈려서 질문드립니다!

271

박준영

작성한 질문수 23

0

2번째 예제에서 메모리 베리어가 없으면

1) 스레드 A가 실행된다.

2) _answer = 123; 보다 _complete = true;가 먼저 실행되는 경우가 생긴다.(코드 재배치)

3) _answer = 123;이 실행되기 전에 스레드 B가 실행된다.

4) _complete = ture이므로 _answer = 0이 출력된다.

이런 순서로 프로그램이 실행 될 수도 있다는 뜻으로 이해했는데 맞나요?

메모리 베리어를 사용하면

1) 위 경우처럼 순서가 뒤바뀌는 경우가 없어진다. -> 코드 재배치 억제

2) 두 스레드가 같이 사용하는 전역변수 _answer, _complete를 Store하고 Load하는 부분을 확실하게 할 수 있다.( = 물을 내린다...?) -> 가시성

이러한 이점이 있는거구요!

C# unity network

답변 1

0

Rookiss

네 맞습니다.
1) 코드 재배치 억제
2) 캐시로 인한 가시성 문제 해결
위 문제를 해결합니다.

C#에서의 RAII

0

66

3

TLS 질문드립니다.

0

80

2

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

0

74

2

Unity Span

0

98

2

XML, Dll 차이점

0

134

2

Session 질문입니다

0

96

1

Write Read 커서 키워드

0

88

1

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

0

85

2

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

0

113

2

UnhandledException 으로 서버 터지는 경우

0

102

2

컨텐츠 단, 엔진 단

0

118

1

질문 있습니다

0

93

2

C# 게임서버 3D MMORPG

0

159

2

유니티6 버전

0

106

2

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

0

154

2

커서의 위치의 중요성

0

111

2

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

0

176

2

강의에 질문이 있습니다

0

93

2

멀티스레드 이해도 질문

0

107

1

500 vs 500

0

147

3

OnAcceptHandler 액션 함수

0

70

1

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

0

204

2

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

0

86

2

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

0

112

1