[게임 서버] 3.1 블로킹 소켓
카테고리: GameServer
태그: GameServer
📦 3. 소켓 프로그래밍
👉🏻 항목 1: 블로킹 소켓
블로킹
- 디바이스에 처리 요청을 걸고, 응답을 대기하는 함수를 호출할 때 스레드에서 발생하는 대기 현상
- 해당 스레드는 waitable state 상태며, CPU 사용량이 0%가 된다.
📄 디스크에 접근하는 경우
---
config:
layout: elk
theme: dark
look: handDrawn
---
sequenceDiagram
participant App as 애플리케이션
participant Dev as 디바이스
App->>Dev: ReadFile() 호출
Note over App: 실행 중 → 대기
Dev->>Dev: 디바이스 I/O 실행 중
Dev-->>App: ReadFile() 리턴
Note over App: 다시 실행 중
- 디스크 처리가 완전히 종료될 때까지, 애플리케이션은 대기 상태로 남는다.
문제점:
- 스레드에서 네트워크 수신을 하는 함수를 호출했으며
- 상대 컴퓨터에서 데이터를 보내지 않으면
→ 영원히 블로킹이 발생한다.
댓글남기기