블로킹 I/O는 현재 스레드의 수행을 중단시키고 지속적으로 응답을 기다린다.
블로킹 I/O의 종류는 다음과 같다.
Node.js는 블로킹 I/O로 인한 지연을 피하고자 이벤트 콜백을 사용한다. Node.js는 백그라운드에서 스레드 풀을 구현한다. 이벤트 큐에서 이벤트나 블록 I/O 이벤트가 얻어지면 Node.js는 메인 이벤트 루프 스레드가 아닌, 스레드 풀에서 스레드 한 개를 꺼내어 해당 함수를 수행한다. 이런 구조로 인해 이벤트 큐 내에 모든 잔여 이벤트들의 블로킹 I/O를 방지할 수 있다.