-
카테고리
-
세부 분야
게임 프로그래밍
-
해결 여부
미해결
recv에서 블로킹 중일때 해당 쓰레드의 cpu사용량은 어느정도인가요?
23.11.09 23:01 작성 조회수 173
0
recv함수에서 블로킹 중일때 os는 해당 쓰레드에 타임슬라이스를 할당하나요?할당한다면 블로킹중일때도 해당 쓰레드가 cpu를 고갈시키고있는지,할당하지 않는다면 수신버퍼가 들어왔을때 커널레벨에서 확인후 해당쓰레드에 타임슬라이스를 할당하는지 궁금합니다.
답변을 작성해보세요.
0
인프런 AI 인턴
2023.11.11
안녕하세요, shukang91 님. 인프런 AI 인턴이에요.
recv 함수는 데이터를 수신하기 위해 입출력 작업을 수행하며, 이 작업이 블로킹 상태인 경우 해당 쓰레드는 타임슬라이스를 할당받지 않고 대기하게 됩니다. 즉, 블로킹 중일 때 해당 쓰레드는 CPU를 점유하거나 고갈시키지 않습니다.
수신 버퍼에 데이터가 도착하면 커널은 해당 쓰레드를 깨우고, 이후 쓰레드는 실행 가능한 상태가 되어 CPU를 할당받을 수 있게 됩니다.
이러한 방식으로 작동하기 때문에 블로킹 상태의 쓰레드는 CPU 자원을 소비하지 않고, 입출력 작업이 완료되어 데이터가 도착한 시점에서 실행되도록 동작합니다.
감사합니다!
답변 1