inflearn logo
강의

강의

N
챌린지

챌린지

멘토링

멘토링

N
클립

클립

로드맵

로드맵

지식공유

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

SpinLock

Lock과 SpinLock 질문

662

김병대

작성한 질문수 7

0

안녕하세요 이 강의를 수강하기 앞서 학교 강의에서

C++을 통해 멀티쓰레드 개념을 살짝 배운 상태입니다.

 

C#을 대상으로 하는 강의라 조금 동떨어진 느낌이 있지만 언리얼 쪽으로도 강의하시는거 보고 혹시 알고계실까 해서 질문합니다.

 

  1. C#의 lock과 C++의 unique_lock<mutex>가 상당히 흡사해 보이는데 맞나요? 차이점이 있을까요?

 

  1. C++에선 mutex라는 것을 사용했는데 C#에서는 object로 할 수 있는 이유? 그러는 이유? 가 궁금합니다.

 

  1. Spin Lock이 Busy Wait 방식으로 lock이 풀리길 기다리는 방식을 뜻하는 것 같은데, C++에서는 condition_variable와 같은 것으로 CPU를 무의미하게 점유하는 것을 막았던 것으로 기억납니다. lock이나 condition_variable을 사용하지 않고 이런 방식을 사용하는 이유가 있는지 알 수 있을까요.

c# C# 네트워크 unity network

답변 1

0

Rookiss

  1. C# lock = C++ mutex 이고요 (표준에서 제공하는 락)
    C# using (...) = C++ unique_lock(...) or lock_guard(...) 로 생각할 수 있습니다.

  2. 구글에서 C# object, lock 원리에 대해 검색해보시기 바랍니다.

  3. CV는 당연히 C#에도 존재합니다. CV까지 가지 않고 스핀락을 사용하는게 유용한 경우는
    정말 정말 락 거는 시간이 짧을 것으로 예상될 때입니다. (단순한 매니저 get set 이라거나)

    그러면 오히려 이벤트 방식이나 CV와 같이 한 단계 거치는 방식보단 더 효율적일 수도 있겠죠.

TLS 질문드립니다.

0

57

2

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

0

58

2

Unity Span

0

82

2

XML, Dll 차이점

0

112

2

Session 질문입니다

0

84

1

Write Read 커서 키워드

0

79

1

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

0

76

2

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

0

101

2

UnhandledException 으로 서버 터지는 경우

0

91

2

컨텐츠 단, 엔진 단

0

108

1

질문 있습니다

0

78

2

C# 게임서버 3D MMORPG

0

153

2

유니티6 버전

0

100

2

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

0

135

2

커서의 위치의 중요성

0

105

2

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

0

171

2

강의에 질문이 있습니다

0

89

2

멀티스레드 이해도 질문

0

98

1

500 vs 500

0

132

3

OnAcceptHandler 액션 함수

0

64

1

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

0

194

2

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

0

84

2

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

0

107

1

스핀락 질문.

0

111

2