이번에는 점원이 한 손님의 주문을 받고, 주방에 주문 내역을 넘긴 뒤 다음 손님의 주문을 받습니다. 요리가 끝나기까지 기다리는 대신, 주문이 들어왔다는 것만 주방에 계속 알려주는 것입니다. 주방에서 요리가 완료되면 완료된 순서대로 손님에게 서빙합니다. 요리의 특성(블로킹인지 논블로킹인지)에 따라 완료되는 순서가 다를 수 있으므로, 주문이 들어온 순서와 서빙하는 순서가 일치하지 않을 수도 있습니다.
이것이 싱글 스레드, 논블로킹 모델입니다. 바로 노드가 채택하고 있는 방식입니다. 점원은 한 명이지만 혼자서 많은 일을 처리할 수 있습니다. 하지만 그 점원 한 명이 아파서 쓰러지거나 하면 큰 문제가 생길 수 있습니다. 또한, 요리를 하는 데 시간이 오래 걸린다면(CPU를 많이 쓰는 작업) 주문이 많이 들어왔을 때 버거울 수 있습니다.
▲ 그림 1-13 싱글 스레드, 논블로킹