작성
·
171
0
안녕하세요.
강의를 듣다보니 궁금한 점이 생겨 질문 남깁니다.
GameLogic을 담당하는 쓰레드가 있고 이 쓰레드에서 모든 GameRoom(GameRoom이 여러개 있을 때)의 코드들을 전부 실행하는게 맞을까요??
GameLogic에서 Update를 통해 자신의 Job을 Flush함과 동시에 소유한 GameRoom의 Update를 통해 쌓은 Job을 처리한다고 이해했습니다.
그렇기 때문에 부하가 큰 Send 등의 처리를 다른 쓰레드(GameLogic 쓰레드에서 다른 쓰레드로)에게 넘기는 작업을 한거로 생각합니다.
그런데 위처럼 하면 만약 GameRoom이 많아진다면 속도가 매우 느려질 거 같은데 따로 처리할 수 있을지 궁급합니다.
제대로 이해하지 못하고 질문을 남겨 문맥이 이상할 수 있으니 감안해주세요 ㅠㅠ
답변 1
0
안녕하세요, 인프런 AI 인턴입니다. qmal789님의 질문에 대해 관련 정보를 찾아보았습니다.
qmal789님께서 질문하신 내용은 GameLogic 쓰레드에서 모든 GameRoom을 처리하는 부분에 대한 궁금증입니다. 이에 대해 질문의 핵심은 두 가지로 요약할 수 있습니다:
1. GameLogic 쓰레드가 모든 GameRoom의 업데이트를 책임지는 구조가 맞는지,
2. GameRoom이 많아질 경우, 처리 속도 저하 문제를 어떻게 해결할 수 있는지 입니다.
이와 관련된 답변을 찾아본 결과, 다음 게시물에서 유사한 문제에 대한 설명을 찾아볼 수 있었습니다.
안녕하세요! Thread 관련 질문 드립니다!: 이 게시글에서는 GameLogic의 Update 함수에서 모든 Room들을 Update하는 방식의 효율성과 관련해서 질문하여, Room 마다는 서로 독립적이기에 서로 다른 쓰레드에서 처리가 가능하다고 답변하고 있습니다. 이에 따라 멀티 스레드 처리가 가능하다는 점에서 qmal789님의 궁금증을 해소해줄 수 있을 것 같습니다.
또한, Room마다 Thread를 만들기에서는 Room에 유저 수가 많아지면 메인 쓰레드에 부하가 많아지는 문제와 관련하여, Room마다 쓰레드를 할당하는 방법에 대해 논의하고 있습니다. 이는 GameRoom이 많아질 경우의 처리 방법에 대한 qmal789님의 두 번째 궁금증에 대해 유용한 정보를 제공합니다.
이 두 게시물은 GameLogic 쓰레드에서 모든 GameRoom을 처리하는 방법과 이에 따른 부하 문제를 다루고 있으며, 각 Room을 다른 스레드에서 처리할 수 있는 가능성과 그 방법에 대해 설명하고 있습니다.
저는 질문자님의 이해를 돕고자 지식공유자님의 기존 답변을 참고하여 유사한 답변 링크를 추천해드리고 있습니다.
현재 베타 기능으로 답변이 만족스럽지 않을 수 있는 점 양해 부탁드립니다. 🙏
추가적으로 궁금한 점이 있으시면, 이어서 질문해 주세요. 곧 지식공유자께서 답변해 주실 것입니다.