inflearn logo
강의

강의

N
챌린지

챌린지

멘토링

멘토링

N
클립

클립

로드맵

로드맵

지식공유

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

AutoResetEvent

Event 방식

389

언리얼컨설팅

작성한 질문수 31

0

AutoResetEvent 방식을 공부하다 궁금한게 생겨서 질문 남깁니다.

AutoResetEvent 방식은 강의에서 말씀하신것처럼 운영체제에게 이벤트를 요청하며 CPU 점유를 반환하고 대기하고 있다가, 이벤트가 처리되어 락을 얻을 수 있는 순간이 왔을때, 운영체제가 직접 아까 요청했던 그 쓰레드를 깨워서 실행하도록 하는 방식이라고 이해해도 되나요?

기존의 랜덤메타와 다른건, 이벤트를 등록해두고, 이벤트가 처리되어 본인이 실행될 수 있을때, 다른 스케쥴링을 다소 무시하고 먼저 본인이 새치기하듯 먼저 실행된다고 이해했는데 잘 이해했는지 궁금합니다.

그리고 이러한 방식이 기존의 2번 방식이었던 Sleep, Yield와 같은 랜덤메타 방식보다 좀더 성능적(속도)으로 느리다고 이해했는데 잘 이해했는지 궁금합니다.

unity C# network

답변 1

0

Rookiss

이벤트는 특별히 Lock을 위해 존재하는 개념은 아닙니다.
봉화대처럼 그냥 어떤 특정 상황에 대한 신호를 주고,
반대편에서 그것을 감지하고 잠에서 깨어나는 정도인데요.


다른 스케쥴링을 다소 무시하고 먼저 본인이 새치기하듯 먼저 실행된다고 이해했는데

이건 아닙니다.

그리고 이러한 방식이 기존의 2번 방식이었던 Sleep, Yield와 같은 랜덤메타 방식보다 좀더 성능적(속도)으로 느리다고 이해했는데 잘 이해했는지 궁금합니다.

상황에 따라 다릅니다.
기내 비행기 예제로 다시 돌아가면.
1) 3분마다 제자리에 가서 한 번씩 화장실이 비었는지 오고 가며 확인하는 것
2) 승무원에게 부탁해 자리가 비면 와서 알려달라고 부탁하는 것
어느 쪽이 '빠른가'라고 한다면 사실 애매합니다.

우리 입장에선 1)은 허탕칠 수 있으니 불안하지만
단 번에 자리가 난다면 좋은 상황인 것이고
2)로 가기엔 승무원(OS) 자원을 소모하는 것이겠죠.

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