libuv의 핵심 요소입니다이벤트 필요한 함수 실행했으면 uv_run을 호출하여 이벤트 루프를 진입시스템 API로 wraping되어 있으면 비동기 아니면 동기처리이며 동기일 땐 쓰레드풀을 이용시스템 API를 호출하거나 쓰레드풀을 이용하는 모든 과정은 싱글쓰레드로 동작Libuv Event Loop NotionLibuv uv phaselibuv tickLibuv Queuelibuv cycleLibuv Event Loop Visualization Libuv Event Loop FunctionLibuv uv_run()Libuv uv_io()uv__work_submit()uv__to_stat()uv_async_send()uv__io_poll()uv__async_io() [node.js] node.js의 이벤트루프와 libuv의 이해각각은 별도로 큐를 이용하여 작업 리스트를 가지고 있습니다. 앞에서 libuv는 시스템 API나 쓰레드 풀에게 작업을 비동기 형태로 전달한 후 콜백을 큐에 저장한다고 했는데 여기서 말한 큐가 timers, pending callbacks, idle/prepare, poll, check, close callbacks, nestTickQueue, microTaskQueue 큐입니다. 우리가 등록한 큐는 성격에 따라 유형에 맞는 큐에 등록됩니다.https://m.blog.naver.com/pjt3591oo/221976414901노드 개발자가 IO 작업을 시작하면 무슨일이 일어날까?이 문서는 http://www.nearform.com/nodecrunch/developer-initiates-io-operation-wont-believe-happens-next/를 번역한 내용입니다. 모든 링크를 열어보면서 읽어보기 바란다. 코어 팀의 Saúl Ibarra Corretgé님, 이 포스트를 리뷰해 주셔서 고맙습니다. 노드JS 개발자로서 우리는 매우 행복하다. 자바스크립트로 제공되는 추상화는 개발자가 쓰레드나 동기화 같은 저수준 시스템 개념과 씨름하지 않고 즐거운 어플리케이션 개발에 집중할 수 있도록 하기 때문이다.https://jeonghwan-kim.github.io/node/2017/01/27/node-io-deep.html