노드는 모두 단일 스레드로 실행됩니까?
노드는 단일 스레드 비동기 비차단 모드를 사용하여 단일 스레드에서 실행되지만, 엄밀히 말하면 노드에 여러 스레드가 있다는 것은 기본 노드에서 실행되는 노드에 하나의 js 엔진만 있음을 의미합니다. 스레드 및 기타 비동기 작업도 실행을 위한 독립적인 스레드가 있으며 노드는 기본적으로 단일 스레드입니다. "node.js"는 멀티 코어 리소스를 활용할 수 없습니다.
이 튜토리얼의 운영 환경: windows10 시스템, nodejs 버전 12.19.0, Dell G3 컴퓨터.
모든 노드가 단일 스레드에서 실행됩니까?
노드가 단일 스레드 비동기 비차단 모드를 사용하여 단일 스레드에서 실행되고 있습니다.
노드라고 하면 단일 스레드, 비동기 IO, 이벤트 중심 등의 단어가 바로 떠오를 수 있습니다. 가장 먼저 명확히 해야 할 것은 노드가 실제로 단일 스레드인지 여부입니다. 단일 스레드인 경우 비동기 IO 및 예약된 이벤트(setTimeout, setInterval 등)가 실행되는 위치입니다.
사실 엄밀히 말하면 노드는 단일 스레드가 아닙니다. 노드에는 다음을 포함하여 다양한 종류의 스레드가 있습니다.
js 엔진 실행 스레드
타이머 스레드(setTimeout, setInterval)
비동기 http 스레드(ajax)
일반적으로 단일 스레드라고 부르는 것은 노드에 하나만 있다는 의미입니다. Node.js 엔진은 메인 스레드에서 실행됩니다. 기타 비동기 IO 및 이벤트 기반 관련 스레드는 libuv를 사용하여 내부 스레드 풀 및 스레드 예약을 구현합니다. libv에는 Event Loop가 있는데, Event Loop를 통해 전환하면 멀티스레딩과 유사한 효과를 얻을 수 있습니다. 간단히 말해서, 이벤트 루프는 실행 스택과 이벤트 큐를 유지 관리합니다. 현재 실행 스택에 비동기 IO 및 타이머 함수가 있으면 이러한 비동기 콜백 함수가 이벤트 큐에 배치됩니다. 현재 실행 스택의 실행이 완료된 후 이벤트 큐의 비동기 콜백 함수는 이벤트 큐의 특정 순서에 따라 실행됩니다.
위 그림에서 실행 스택부터 이벤트 큐까지, 마지막으로 이벤트 큐에서 콜백 함수가 특정 순서에 따라 실행되는 전체 프로세스는 이벤트 루프의 단순화된 버전입니다. 또한 콜백 함수가 실행되면 실행 스택도 생성됩니다. 콜백 함수 내에 비동기 함수가 중첩될 수 있습니다. 이는 실행 스택이 중첩된다는 의미입니다.
즉, 노드의 단일 스레드는 js 엔진이 유일한 메인 스레드에서만 실행된다는 의미입니다. 다른 비동기 작업도 독립적인 스레드에 의해 실행됩니다. 멀티 스레딩과 유사한 컨텍스트 전환이 libv의 이벤트 루프를 통해 구현됩니다. 풀 예약. 스레드는 가장 작은 프로세스이므로 노드도 단일 프로세스입니다. 이는 노드가 단일 스레드 및 단일 프로세스인 이유를 설명합니다.
추천 학습: "nodejs 비디오 튜토리얼"
위 내용은 노드는 모두 단일 스레드로 실행됩니까?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

핫 AI 도구

Undresser.AI Undress
사실적인 누드 사진을 만들기 위한 AI 기반 앱

AI Clothes Remover
사진에서 옷을 제거하는 온라인 AI 도구입니다.

Undress AI Tool
무료로 이미지를 벗다

Clothoff.io
AI 옷 제거제

AI Hentai Generator
AI Hentai를 무료로 생성하십시오.

인기 기사

뜨거운 도구

메모장++7.3.1
사용하기 쉬운 무료 코드 편집기

SublimeText3 중국어 버전
중국어 버전, 사용하기 매우 쉽습니다.

스튜디오 13.0.1 보내기
강력한 PHP 통합 개발 환경

드림위버 CS6
시각적 웹 개발 도구

SublimeText3 Mac 버전
신 수준의 코드 편집 소프트웨어(SublimeText3)

뜨거운 주제











nvm을 사용하여 노드를 삭제하는 방법: 1. "nvm-setup.zip"을 다운로드하여 C 드라이브에 설치합니다. 2. "nvm -v" 명령을 통해 환경 변수를 구성하고 버전 번호를 확인합니다. install" 명령 노드 설치; 4. "nvm uninstall" 명령을 통해 설치된 노드를 삭제합니다.

파일 업로드를 처리하는 방법은 무엇입니까? 다음 글에서는 Express를 사용하여 노드 프로젝트에서 파일 업로드를 처리하는 방법을 소개하겠습니다. 도움이 되길 바랍니다.

이 기간 동안 저는 Tencent 문서의 모든 카테고리에 공통되는 HTML 동적 서비스를 개발 중입니다. 다양한 카테고리에 대한 액세스 생성 및 배포를 촉진하고 클라우드로 이동하는 추세에 부응하기 위해. Docker를 사용하여 서비스 콘텐츠를 수정하고 제품 버전을 균일하게 관리합니다. 이 글에서는 제가 Docker를 서비스하면서 쌓은 최적화 경험을 여러분의 참고용으로 공유하겠습니다.

이 기사에서는 Node의 프로세스 관리 도구인 "pm2"를 공유하고 pm2가 필요한 이유, pm2 설치 및 사용 방법에 대해 설명합니다. 모두에게 도움이 되기를 바랍니다!

Pinetwork 노드에 대한 자세한 설명 및 설치 안내서이 기사에서는 Pinetwork Ecosystem을 자세히 소개합니다. Pi 노드, Pinetwork 생태계의 주요 역할을 수행하고 설치 및 구성을위한 전체 단계를 제공합니다. Pinetwork 블록 체인 테스트 네트워크가 출시 된 후, PI 노드는 다가오는 주요 네트워크 릴리스를 준비하여 테스트에 적극적으로 참여하는 많은 개척자들의 중요한 부분이되었습니다. 아직 Pinetwork를 모른다면 Picoin이 무엇인지 참조하십시오. 리스팅 가격은 얼마입니까? PI 사용, 광업 및 보안 분석. Pinetwork 란 무엇입니까? Pinetwork 프로젝트는 2019 년에 시작되었으며 독점적 인 Cryptocurrency Pi Coin을 소유하고 있습니다. 이 프로젝트는 모든 사람이 참여할 수있는 사람을 만드는 것을 목표로합니다.

nodejs 실행 파일을 pkg로 패키징하는 방법은 무엇입니까? 다음 기사에서는 pkg를 사용하여 Node 프로젝트를 실행 파일로 패키징하는 방법을 소개합니다. 도움이 되기를 바랍니다.

인증은 모든 웹 애플리케이션에서 가장 중요한 부분 중 하나입니다. 이 튜토리얼에서는 토큰 기반 인증 시스템과 기존 로그인 시스템과의 차이점에 대해 설명합니다. 이 튜토리얼이 끝나면 Angular와 Node.js로 작성된 완벽하게 작동하는 데모를 볼 수 있습니다. 기존 인증 시스템 토큰 기반 인증 시스템으로 넘어가기 전에 기존 인증 시스템을 살펴보겠습니다. 사용자는 로그인 양식에 사용자 이름과 비밀번호를 입력하고 로그인을 클릭합니다. 요청한 후 데이터베이스를 쿼리하여 백엔드에서 사용자를 인증합니다. 요청이 유효하면 데이터베이스에서 얻은 사용자 정보를 이용하여 세션을 생성하고, 세션 정보를 응답 헤더에 반환하여 브라우저에 세션 ID를 저장한다. 다음과 같은 애플리케이션에 대한 액세스를 제공합니다.

IDEA에서 노드를 실행하는 방법은 무엇입니까? 다음 글에서는 IDEA에서 node.js를 구성, 설치, 실행하는 방법을 소개하겠습니다. 도움이 되셨으면 좋겠습니다!
