인프런 영문 브랜드 로고
인프런 영문 브랜드 로고

인프런 커뮤니티 질문&답변

bae5445님의 프로필 이미지
bae5445

작성한 질문수

[C#과 유니티로 만드는 MMORPG 게임 개발 시리즈] Part7: MMO 컨텐츠 구현 (Unity + C# 서버 연동 기초)

JobQueue

FindPlayer

작성

·

251

0

안녕하세요 루키스님. 제가 이해한게 맞는지 궁금합니다.
 
원래는 lock을 함수마다 걸어서 _players 딕셔너리에 동시에 여러 쓰레드에서 접근하는 것을 막았는데, JobQueue라는 개념을 도입하여 단일 쓰레드에서 순차적으로 처리하도록 하여 동시접근을 차단했습니다.
그런데 외부 쓰레드에서 갑자기 _players에 접근한다면 결국 두 쓰레드에서 접근하여 read/write 해버리는 문제가 발생할 수 있다고 이해하면 될까요? (물론 코드 상에서 FindPlayer 부분을 실행하는 것은 Main에서 room.Push(room.Update); 이 부분으로 호출하고 있기 때문에 jobQueue로 순차적으로 실행)
 
 

답변 1

0

Rookiss님의 프로필 이미지
Rookiss
지식공유자

네 그렇습니다.
Job방식을 사용할 때는, 저런 식으로 외부에서 데이터를 끄집어내는(FindPlayer)
행동은 절대 하면 안됩니다.

bae5445님의 프로필 이미지
bae5445

작성한 질문수

질문하기