블로킹 함수와 논블로킹 함수의 차이는 함수 호출 후 작업이 완료될 때까지 대기 여부에 있습니다.
블로킹 함수 (Blocking Function)
함수가 작업을 완료할 때까지 호출한 프로그램이 멈춥니다. 제어권이 함수에 머무르며, 결과를 반환하기 전까지 다른 작업을 수행하지 못합니다. 예: read(), accept()(소켓 통신에서 기본 동작). 논블로킹 함수 (Non-Blocking Function)
함수가 즉시 반환하며, 작업이 완료되지 않아도 제어권을 호출한 프로그램에 넘깁니다. 호출자는 작업 상태를 계속 확인하거나, 콜백 메서드를 통해 결과를 처리합니다. 예: recv() (소켓에서 논블로킹 모드), poll(). 핵심 차이:
블로킹: 작업이 끝날 때까지 기다림. 논블로킹: 기다리지 않고 바로 반환. 논블로킹 함수는 일반적으로 비동기 프로그래밍에서 사용됩니다.