Lock과 SpinLock 질문
662
작성한 질문수 7
안녕하세요 이 강의를 수강하기 앞서 학교 강의에서
C++을 통해 멀티쓰레드 개념을 살짝 배운 상태입니다.
C#을 대상으로 하는 강의라 조금 동떨어진 느낌이 있지만 언리얼 쪽으로도 강의하시는거 보고 혹시 알고계실까 해서 질문합니다.
C#의 lock과 C++의 unique_lock<mutex>가 상당히 흡사해 보이는데 맞나요? 차이점이 있을까요?
C++에선 mutex라는 것을 사용했는데 C#에서는 object로 할 수 있는 이유? 그러는 이유? 가 궁금합니다.
Spin Lock이 Busy Wait 방식으로 lock이 풀리길 기다리는 방식을 뜻하는 것 같은데, C++에서는 condition_variable와 같은 것으로 CPU를 무의미하게 점유하는 것을 막았던 것으로 기억납니다. lock이나 condition_variable을 사용하지 않고 이런 방식을 사용하는 이유가 있는지 알 수 있을까요.
답변 1
0
C# lock = C++ mutex 이고요 (표준에서 제공하는 락)
C# using (...) = C++ unique_lock(...) or lock_guard(...) 로 생각할 수 있습니다.구글에서 C# object, lock 원리에 대해 검색해보시기 바랍니다.
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





