온라인 게임서버의 스레드 풀
글쓴이: peccavi / 작성시간: 월, 2005/05/02 - 10:47오전
안녕하세요.
작업 처리의 순서가 중요한 응용프로그램에서 스레드풀을 사용한다면
각 스레드들간의 동기화 처리를 어떻게 해주어야 하는지 궁굼합니다.
온라인 게임을 예를 들자면, 다음과 같은 상황이 적절하겠네요..
동일한 내용으로 생성된 워커스레드가 2개(a,b)가 있습니다.
사용자로부터 전송된 첫번째 패킷은 캐릭터를 왼쪽으로 움직이는것이고
두번째 패킷은 총알을 한번 발사하는 것입니다.
사용자의 입력 순대로 처리가 진행된다면 왼쪽으로 움직인다음 총알이 발사되어야 겠지요..
그런데 이 상황에서 a,b스레드가 각각의 패킷 작업을 입력받아 처리하는 도중에
첫번째 패킷의 처리 시간이 두번째보다 훨씬 긴 경우엔
총알을 먼저 발사한 후 왼쪽으로 움직이게 됩니다.
이 문제에서 a,b스레드들간의 동기화를 맞춰주기 위해선 어떤 장치를 구현해줘야 할까요?
뭐 장황하게 설명했으나 대충 어떤 상황인지 아시리라 봅니다.
처리 영역에 따라 스레드의 역할도 구분해주는 방법밖에는 적당히 생각나지가 않는데, 뭔가 일반적으로 사용하는 방법이 있을것 같네요..
답변좀 부탁드릴께요..
Forums:
Re: 온라인 게임서버의 스레드 풀
질문하신 내용과 조금은 다를지 모르겠지만,
메세지 처리를 IOCP의 스레드풀을 사용한 기사가
마소에 소개된적이 있습니다.
마소 2005년 3월호의
를 참조해 보시기 바랍니다.
PDF 다운로드는 유료라서 그렇지만, 근처 도서관 가서
찾아보세요.
답변 감사합니다. 읽어보니 많은 도움이 됐네요.. :o
답변 감사합니다. 읽어보니 많은 도움이 됐네요.. :o
----
jai guru deva om...
댓글 달기