작성
·
303
0
Send 코드를 보던 중 궁금증이 생겼습니다.
컨텐츠 구현시 정확히 Send를 호출한 순서대로 패킷이 가야 하는 경우가 있는가? 입니다.
만약 1번 스레드가 Send 호출 후 connected 확인만 하고 멈추고, 2번 스레드가 이후에 Send를 호출해 lock을 잡을 경우
1->2 순서로 호출했지만 데이터는 2->1 순서로 전송될 것입니다.
이렇게 자세하게 따져야 하는 경우가 있는지, 있다면 send 시작부터 exchage까지 lock을 잡으면 해결되는 문제인지 궁금합니다.
답변 1
0
그 부분은 살짝 경계선에 있는데요.
멀티쓰레드라고 정말 모든게 멀티쓰레드로 돌아갈 순 없고
지역 단위, 혹은 Actor 단위로 JobQueue를 두고
Actor 사이의 일감은 순차적으로 처리해야 합니다.
일감의 순서가 정해지면 사실 패킷 송신은 Lock잡고 처리해도 되긴 합니다.