작성한 질문수
[C#과 유니티로 만드는 MMORPG 게임 개발 시리즈] Part9: MMO 컨텐츠 구현 (DB연동 + 대형 구조 + 라이브 준비)
DB 연동
작성
·
423
0
RecvArgs_Completed에서 lock을 안하는 이유는 하나의 클라이언트당 하나의 thread로 recv를 받기 때문인가요?
그래서 PacketHandler에서 연관된 작업을 모두 처리한 후 (공유 자원을 참조할 땐 job으로만 저장)
다시 RecvArgs_Completed으로 돌아와 RegisterRecv를 호출 하여 threadpool에서 하나의 thread로 recv를 받는게 맞나요?
recv는 하나의 thread로만 작업하는지 궁굼합니다.
답변 1
1
네 하나의 Session에 대한 Recv는 1번만 걸어준 상태이기 때문에 (registerRecv)멀티쓰레드 환경이라고 하더라도 동일 대상으로는 한 번에 한 번만 수신이 실행됩니다.굳이 RegisterRecv를 다중으로 걸 이유가 없는게,코드만 복잡해지고 이전에 받은 데이터가 처리도 되지 않았는데굳이 다른 쓰레드가 이중으로 뭔가를 처리할 필요가 없습니다.