반응형
스레드 풀
노드(Node.js)에서 스레드 풀(thread pool)은 I/O 작업을 처리하는 데 사용되는 스레드의 집합입니다. 노드는 기본적으로 싱글 스레드로 동작하므로, 블로킹되는 I/O 작업(예: 파일 시스템 액세스, 네트워크 호출 등)을 처리할 때는 이러한 작업을 비동기적으로 수행하는 것이 중요합니다. 이를 위해 노드는 내부적으로 스레드 풀을 사용하여 I/O 작업을 비동기적으로 처리합니다.
노드의 스레드 풀은 기본적으로 4개의 스레드를 사용합니다. 이는 libuv 라이브러리에서 관리됩니다. 각 스레드는 I/O 작업을 처리하고, 작업이 완료되면 콜백 함수를 호출하여 결과를 반환합니다. 이렇게 함으로써, 노드는 I/O 작업을 비동기적으로 처리하면서도 블로킹되지 않고, 다른 작업을 처리할 수 있습니다.
스레드 풀의 크기는 노드의 환경 변수를 통해 조정할 수 있습니다. 이를 통해 노드 애플리케이션의 성능을 최적화할 수 있습니다. 그러나 스레드 풀의 크기를 너무 크게 설정하면, 컨텍스트 스위칭 오버헤드가 증가하여 성능이 저하될 수 있으므로 적절한 크기로 설정하는 것이 중요합니다.
스레드 풀은 노드에서 I/O 작업 처리의 핵심 부분입니다. 이를 잘 이해하고 적절히 활용하면 노드 애플리케이션의 성능을 향상시킬 수 있습니다.
반응형
'백엔드 > 노드' 카테고리의 다른 글
[NodeJS] fs 모듈 : 파일 시스템에 접근 시 사용 (0) | 2023.03.07 |
---|---|
[Node.js] 태스크 큐와 이벤트 큐 (0) | 2023.03.05 |
[Node.js] 노드에서 싱글 스레드/블로킹과 언블로킹/이벤트 루프 .../ (0) | 2023.03.04 |
[Node.js] 컨텍스트/ 컨텍스트 스위칭 / 컨텍스트 스위칭 오버헤드 (0) | 2023.03.04 |
[node.js] node.js 서버 환경에서 css 파일 적용하는 방법 (0) | 2022.12.27 |