2025-11-01 15:08

Tags: 소프트웨어 아키텍처

논블로킹 (Non-blocking)

  • 호출된 함수가 제어권을 바로 반환하는지 여부에 대한 관점
    • 컴퓨터 시스템의 핵심 구성 요소인 CPU와 I/O(Input/Output) 장치 간의 엄청난 속도 차이(폰 노이만 구조 병목 현상)라는 본질적인 문제
    • I/O 작업이 완료될 때까지 CPU가 아무 일도 못 하고 멈춰버리는 비효율을 해결하기 위해 논블로킹이라는 개념이 등장
구분설명핵심 특징
블로킹 (Blocking)호출된 함수가 자신의 작업을 모두 마칠 때까지 호출한 함수에게 제어권을 돌려주지 않고 대기시킨다.호출한 함수는 호출된 함수의 작업 완료와 결과값을 동시에 받는다.
논블로킹 (Non-blocking)호출된 함수가 작업을 완료하지 않았더라도, 호출한 함수에게 제어권을 즉시 돌려준다.호출한 함수는 호출된 함수의 작업 완료 여부를 스스로 계속 확인해야 한다.