해결된 질문
작성
·
199
0
안녕하세요. Broadcast에서 패킷을 보낼 때 마다 컨텍스트 스위칭이 일어난다 하신게 이해가 어렵습니다.
현재 코드에서 GameRoom이 JobSerializer의 상속을 받아서 모든 행동을 큐에 넣고 특정 타이밍에 현재 쌓여있는 큐에 있는 내용을 실행합니다.
특정 타이밍에 GameRoom을 Flush하려고 접근한 스레드가 쌓여있는 큐에 있는 행동을 모두 수행하면서 쌓여있는 Broadcast들도 모두 수행하는데, 여기서 어떻게 컨텍스트 스위칭이 일어나는지 모르겠습니다.
답변 1
0
Context-Switching 개념을 잘못 이해하신 것 같습니다.
CPU 코어가 1개이고, 프로그램이 10개 켜져 있으면
Context-Switching은 여전히 일어납니다. (멀티쓰레드와 별개로)
JobSerializer를 단일 쓰레드가 실행하더라도
입출력 계열의 함수를 사용하면 운영체제로 소유권이 넘어가고
그러면 사실상 쓰레드 실행권을 내주는 셈이 됩니다.
답변 감사합니다. 이해 되었습니다.