---
id: [[P-Reinforce|P-Reinforce]]-AUTO-BLOC-002
category: Unified
confidence_score: 0.94
tags: [auto-reinforced, blocking, synchronous, computation, resource-[[Management|Management]], [[Efficiency|Efficiency]]]
last_reinforced: 2026-04-20
---

# [[Blocking|Blocking]]

## 📌 한 줄 통찰 (The Karpathy Summary)
> "멈춰버린 흐름: 특정 작업이 완료될 때까지 나머지 모든 프로세스가 진행되지 못하도록 막아버리는 동기식 처리 방식으로, 자원 활용의 효율성을 떨어뜨리는 병목의 주원인."

## 📖 구조화된 지식 (Synthesized Content)
블로킹(Blocking)은 작업이 완료될 때까지 제어권을 반환하지 않아 호출한 쪽이 다른 일을 하지 못하고 기다리게 만드는 현상입니다.

1.  **동작 원리**:
    *   A라는 함수가 B라는 I/O 작업(파일 읽기, 네트워크 요청)을 호출함.
    *   B가 끝날 때까지 A는 멈춰 있음. (CPU는 놀고 있는데 작업은 진행 안 됨)
2.  **Non-blocking과의 대비**:
    *   Non-blocking은 일단 일을 맡기고 바로 제어권을 돌려받아 다른 일을 하다가, 나중에 작업 완료 통보를 받는 방식임.
3.  **시스템적 영향**:
    *   사용자 인터페이스(UI)에서 블로킹이 발생하면 화면이 멈추는(Freezing) 현상이 일어남.
    *   서버에서 블로킹이 잦으면 동시 접속자 처리가 급격히 느려짐. ([[Scalability|Scalability]] 저하)

## ⚠️ 모순 및 업데이트 (Contradictions & RL Update)
- **과거 데이터와의 충돌**: 과거의 순차적 프로그래밍 정책은 블로킹을 당연한 것으로 여겼으나, 현대의 고성능 시스템 정책은 모든 I/O를 비동기/논블로킹(Async/Wait) 정책으로 처리하여 응답성을 극대화함(RL Update).
- **정책 변화(RL Update)**: 대규모 언어 모델 추론 정책에서, 토큰 생성이 끝날 때까지 기다리지 않고 생성되는 즉시 화면에 뿌려주는 '스트리밍(Streaming) 정책'이 블로킹에 의한 사용자 경험 저하를 막는 핵심 설계 원칙이 됨.

## 🔗 지식 연결 (Graph)
- [[Bottlenecks|Bottlenecks]], [[Technical-Architecture|Technical-Architecture]], [[Optimization|Optimization]], [[Availability-and-Persistence|Availability-and-Persistence]], [[Scalability|Scalability]]
- **Modern Tech/Tools**: Async/Await, Node.js (Event Loop), Promise patterns.
---
