강의

멘토링

로드맵

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

Hustleinmablood김용호님의 프로필 이미지
Hustleinmablood김용호

작성한 질문수

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

JobQueue #1

19:10초 부분 질문있습니다!

작성

·

215

1

public override void OnDisconnected(EndPoint endPoint)

{  

SessionManager.Instance.Remove(this);


if (Room != null) 

{

GameRoom room = Room;

room.Push(() => room.Leave(this));  

Room = null;

}

}
===========================================
여기서 푸쉬를 하는건 
주문서에 적고 주방에 밀어넣는것인데 만약에
Room.Leave()를  큐에 넣고, Room = null로 바꿀시
Room.Leave()는 큐에서 대기하느라 실행도안되었는데
null로 값이 바뀐상태여서

Room이 null값 에러가 나는것인가요?


그래서 Room의 주소값을 참조하는 room을 만들어
room을 큐에 밀어넣어주고 , Room을 Null로 바꾸어도

큐에 대기하다가 함수처리를할때 Room을 참조하는 room
함수를 실행하기에,   Null에러가 안나는것으로 이해했습니다

제가 옳게 이해한것이 맞을까요?

퀴즈

다수 클라이언트의 동시 요청을 서버에서 즉시 처리할 때 주로 발생하는 문제점은 무엇일까요?

패킷 순서가 뒤바뀔 수 있습니다.

멀티스레딩 충돌 및 병목 현상이 발생할 수 있습니다.

클라이언트의 응답 속도가 느려집니다.

서버 메모리 사용량이 급증합니다.

답변 1

2

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

네 잘 이해하셨습니다.

Hustleinmablood김용호님의 프로필 이미지
Hustleinmablood김용호

작성한 질문수

질문하기