inflearn logo
강의

강의

N
챌린지

챌린지

멘토링

멘토링

N
클립

클립

로드맵

로드맵

지식공유

[켠김에 출시까지] 유니티 캐주얼 모바일 MMORPG (M2)

서버 프레임워크

Session Send 멀티스레드 관련

해결된 질문

193

toyboy0113

작성한 질문수 23

0

안녕하세요 Session쪽 Send 만들어 보고 있습니다.
구현하면서 궁금한게

Send에서 lock을 잡고 RegisterSend쪽에서는 lock을 잡지 않는 상황인데

RegisterSend에서 하나의 스레드가 들어와서 while문을 돌면서 sendQueue를 Dequeue하고 있는데
이 과정에서 다른 스레드가 Send에서 sendQueue Enqueue를 할 수 있지 않나 생각이 듭니다.

그래서 RegisterSend에서 적어도 while문에는 lock을 걸어줘야 공유자원 _sendQueue에 대해서 안전하게 처리 될 수 있지 않나라고 생각 하는데

만약 안전하다면 왜 안전한지에 대해서 듣고 싶습니다.

감사합니다!

 

C# unity mysql MMORPG ef-core asp.net-web-api

답변 1

0

Rookiss

RegisterSend 자체에서는 락을 잡지 않으나,
RegisterSend를 호출하는 쪽 (Send와 OnSendCompleted)에서
모두 락을 잡고 있어서 _sendQueue 경합 문제는 발생하지 않습니다.

학습 전 커리큘럼 관련 질문 드립니다

0

112

1

강의 커리큘럼 질문 드립니다

0

62

1

수업질문은 아닌데요^^

0

117

1

게임 로직 루프에서 게임 틱 누락으로 인한 높은 CPU 사용 문제

0

85

1

선 이동과 히트 판정에 대해 질문 드립니다.

0

91

1

Job Scheduler - Cache locality

0

76

2

MMO 3D 게임 서버의 스킬 판정을 어떻게 하면 좋을까요?

0

190

2

코드 머지와 관련하여.

0

95

1

퀘스트 처리 시 궁금한게 있습니다.

0

116

2

Nagle Algorithm

0

100

1

현재 강의를 이용하여 3D 게임을 만들 경우 변경되야 될 사항들에 대해 궁금합니다.

0

134

2

ResourceManager에서 Multiple Sprite를 로드하는 방법

0

102

1

M2는 업데이트가 끝난건가요?

0

149

1

Interpolation & Server Tick Frequency

0

172

2

서버에서 디스커넥트되시는분들 JWT 관련 참고하셔요

0

121

1

aws 와 microsoft azure 중 aws 선택하신 이유가 궁금합니다.

0

189

1

강의는 끝인건가요?

0

332

2

아이템 강화 테이블 관련

0

226

2

강의 관련 질문 드립니다.

0

238

1

리니지1의 이동 질문

0

402

2

버그에대한 썰

0

132

1

포탈 프로젝트에 서버 코드에 에러가 뜨네요

0

139

1

아이템 수량에 관해서 질문입니다.

0

143

1

퀘스트 관련 질문 드립니다.

0

144

1