Libuv Event Loop


### libuv의 핵심 요소입니다
이벤트 필요한 함수 실행했으면 uv_run을 호출하여 이벤트 루프를 진입
시스템 API로 wraping되어 있으면 비동기 아니면 동기처리이며 동기일 땐 쓰레드풀을 이용
시스템 API를 호출하거나 쓰레드풀을 이용하는 모든 과정은 싱글쓰레드로 동작
### Libuv Event Loop Notion
|Title|
|:-:|
|[Libuv uv phase](https://texonom.com/libuv-uv-phase-9c86c52ca08e447e9afd59a5e0b0df46)|
|[libuv tick](https://texonom.com/libuv-tick-e4b65225077c415380a2360e2a0ba1f3)|
|[Libuv Queue](https://texonom.com/libuv-queue-1418e36573eb45deb0f5aa0a14a5cee6)|
|[libuv cycle](https://texonom.com/libuv-cycle-c8f68b093fd448949866422a06b887e2)|
|[Libuv Event Loop Visualization](https://texonom.com/libuv-event-loop-visualization-f2ede6956e064d3aa1b4a843a8b21ac2)|


### Libuv Event Loop Function
|Title|
|:-:|
|[Libuv uv_run()](https://texonom.com/libuv-uvrun-a2ed3c07230e49978d37cb77385267a2)|
|[Libuv uv_io()](https://texonom.com/libuv-uvio-8774f284242046e49698ded8078fa9d2)|
|[uv__work_submit()](https://texonom.com/uvworksubmit-e2d5bb4e1da04e3ca903746135c6ef23)|
|[uv__to_stat()](https://texonom.com/uvtostat-ac8cfd038b844e53b8e05f33b0096062)|
|[uv_async_send()](https://texonom.com/uvasyncsend-88b9508e37e0435eafebbc02c9f697ee)|
|[uv__io_poll()](https://texonom.com/uviopoll-f763ce098239425899a69919e67f4f01)|
|[uv__async_io()](https://texonom.com/uvasyncio-32988a9f066b49f18305f3544d62f654)|



> [[node.js] node.js의 이벤트루프와 libuv의 이해](https://m.blog.naver.com/pjt3591oo/221976414901)

> [노드 개발자가 IO 작업을 시작하면 무슨일이 일어날까?](https://jeonghwan-kim.github.io/node/2017/01/27/node-io-deep.html)





