관찰대상인 리소스에서 새로운 이벤트를 사용할 수 있을 때 까지, I/O를 블로킹하여 처리한다. 각 이벤트를 핸들러에 전달함으로써 반응한다.
멀티플렉서(multiplexer) 또는 mux는 여러 아날로그 또는 디지털 입력 신호 중 하나를 선택하여 선택된 입력을 하나의 라인에 전달하는 장치이다.[1]
전자 멀티플렉서는 여러 신호가 이를테면 입력 신호 당 하나의 장치를 보유하지 않고 아날로그-디지털 변환회로(A/D 변환기)나 하나의 통신선 등 하나의 장치나 자원을 공유할 수 있게 만들어준다.
이와 반대로, 디멀티플렉서(demultiplexer, demux)는 하나의 입력 신호를 받아서 수많은 데이터 출력선 중 하나를 선택하는 장치를 말하며 단일 입력으로 연결된다. 수신을 받는 쪽에서는 멀티플렉서라는 용어가 보완 관계인 디멀티플렉서와 번갈아가며 사용되기도 한다.[1]
애플리케이션은 특정 시점에 비동기적으로 리소스에 접근하고싶다는 요청을 보낸다. 동시에, 요청이 완료되었을 경우 호출할 핸들러(콜백하수)를 제공한다.
Libuv는 이벤트 디멀티플렉싱을 위해 구현된 논블로킹 동작을 표준화하기 위한 C언어 라이브러리이다.