# Node.js libuv, 이벤트 루프
Node.js의 libuv는 C++로 작성이 되어 있고, 비동기 처리를 담당한다.
libuv에게 파일 읽기와 같은 비동기 처리 작업 요청.
커널이 지원하면 커널에게 요청하고, 지원하지 않으면 워커 스레드가 담긴 스레드 풀을 사용한다.
이벤트 루프는 Node.js가 여러 비동기 작업을 관리하기 위한 구현체.
노드가 실행되면 이벤트 루프를 먼저 생성하고, 코드의 실행을 완료하고, 이벤트 루프에 진입해서
각 페이즈의 큐에 쌓여있는 것들이 있는지 확인하고 있으면 실행하고, 모든 페이즈가 비어있으면 이벤트 루프를 빠져나온다.
6개의 페이즈, 이전 페이즈에서 다음 페이즈로 넘어가는것이 Tick
Timer Phase부터 시작. 페이즈마다 queue가 있고 큐에 담겨있는 것을 모두 실행하고 다음으로 넘어가지만
실행 한도가 초과하면 모두 실행하지 않고 넘어갈 수도 있다. 실행이 완료되면 nextTickQueue와 microTaskQueue를 확인한다.
우선순위는 nextTickQueue가 더 높음.
'TIL > 일일 회고' 카테고리의 다른 글
[일일 회고] 2023-05-31 (수) (0) | 2023.06.01 |
---|---|
[일일 회고] 2023-05-30 (화) (0) | 2023.05.31 |
[일일 회고] 2023-05-23 (화) (0) | 2023.05.24 |
[일일 회고] 2023-05-22 (월) (0) | 2023.05.23 |
[일일 회고] 2023-05-21 (일) (0) | 2023.05.22 |