학습 시작전에 궁금한거 질문드려요
클라이언트 개발만 해와서 목차 보고 궁금한건데 멀티쓰레드 부분에 lock free 부분은 없던데 게임 서버 제작에 lock free 알고리즘은 잘 안 쓰이나요?
답변 1
3
아주 간혹 사용하는 프로젝트들이 있긴 하지만 대부분 사용하지 않습니다.
이전에 서버 구조에 대해 이리 저리 설문조사 해본 결과,
10개 프로젝트 중 딱 한 군데서만 LockFree를 사용한 것으로 기억합니다.
LockFree라고 하면 Lock없이(경합없이) 우아하고 빠르게 동작할 것 같지만
어차피 내부적으로는 결국 일련의 Compare-And-Swap 경합으로 만드는 것이기에,
이름부터가 혼동의 여지가 있다고 봅니다.
(락을 명시적으로 사용은 안 하지만, 간접적으로 사용하는 느낌이랄까요).
락프리를 사용하면 코드 자체가 직관성도 떨어지고
ABA문제 등 실수할 여지가 굉장히 많아집니다,
그런데 경합이 심해지는 경우를 막상 테스트를 해보면
락걸고 접근하는 것보다도 느린 경우가 많습니다.
물론 항상 단점만 있는 것은 아니지만, 결과적으로 득보다는 실이 많다고 봅니다..만,
어디까지나 개인적인 의견이고
본인이 좋아하신다면 사용해도 당연히 무방합니다.
TLS 질문드립니다.
0
43
2
SpinLock과 컨텍스트스위칭에 대해 질문 남겨요.
0
46
2
Unity Span
0
76
2
XML, Dll 차이점
0
105
2
Session 질문입니다
0
79
1
Write Read 커서 키워드
0
76
1
더미 클라이언트 수에 따른 OnDisconnect 발생
0
70
2
네트워크 Send 전담 스레드 배치
0
98
2
UnhandledException 으로 서버 터지는 경우
0
85
2
컨텐츠 단, 엔진 단
0
106
1
질문 있습니다
0
77
2
C# 게임서버 3D MMORPG
0
146
2
유니티6 버전
0
98
2
receive하는 부분과 send하는 부분의 차이
0
134
2
커서의 위치의 중요성
0
103
2
C++ 전혀 모르는데 C# 서버
0
169
2
강의에 질문이 있습니다
0
86
2
멀티스레드 이해도 질문
0
95
1
500 vs 500
0
130
3
OnAcceptHandler 액션 함수
0
61
1
이 정도 서버의 객관적인 수준이 궁금합니다.
0
191
2
36. Serialization #3 에서 string (name) 코드 수정 질문
0
82
2
외부 컴퓨터와의 통신 방법이 궁금합니다
0
106
1
스핀락 질문.
0
110
2





