Libuv Node js

Creator
Creator
Seonglae ChoSeonglae Cho
Created
Created
2021 Apr 23 5:39
Editor
Edited
Edited
2021 Apr 23 5:51
Refs
Refs
node.js에서 비동기로 처리될 수 있는 이유는 libUV가 제공하는 이벤트루프와 제공된 시스템 커널 API를 이용하기 때문
시스템마다 제공하는 API(윈도우: IOCP, 리눅스: epoll, 맥: kqueue) 이용해서 (네트워크, 파일 I/O등) 비동기 실행과 라이프 사이클을 제공하는 C 라이브러리
네트워크, 소켓 작업은 시스템 API를 이용하며
파일은
시스템 API는 제공하나 추상화 문제로 별도의 쓰레드를 이용
동기 처리일 경우 시스템 API를 동기 처리는 쓰레드풀을 이용
nodejs는 파일을 읽거나 네트워크 같은 작업을 시스템 또는 다른 쓰레드에게 넘겨주면 시스템 또는 쓰레드는 작업 결과를 콜백으로 큐와 같은 자료구조에 등록
이때 큐는 하나의 큐가 아님
 
 
 
 
 

Recommendations