nodejs는 멀티스레드인가요?
Nodejs는 다중 스레드가 아니지만 단일 스레드입니다. nodejs는 JavaScript 엔진으로 인해 기본적으로 단일 스레드를 사용합니다. 단일 스레드, 높은 동시성 런타임 환경을 달성하기 위한 이벤트 중심 및 비동기식 "I/O" 방법이 될 수 있습니다.
이 문서의 운영 환경: Windows 10 시스템, nodejs 버전 12.19.0, Dell G3 컴퓨터.
nodejs는 멀티 스레드인가요?
노드는 단일 스레드이며 단일 스레드 비동기 비차단 모드를 채택합니다.
JavaScript 엔진으로 인해 노드는 기본적으로 단일 스레드이며 node.js 애플리케이션은 멀티 코어 리소스를 활용할 수 없습니다.
Node.js는 이벤트 중심 및 비동기 I/O를 사용하여 단일 스레드, 높은 동시성 런타임 환경을 구현하며, 단일 스레딩은 동시에 한 가지 작업만 수행할 수 있음을 의미합니다.
nodejs는 비동기, 비차단을 구현합니다.
nodejs는 실제로 단일 스레드인 js 실행만 가지며 I/O는 분명히 다른 스레드입니다.
js 실행 스레드는 단일 스레드입니다. 필요한 I/O를 libuv에 전달하고 즉시 돌아와서 다른 작업을 수행한 다음 libuv가 지정된 시간에 다시 호출합니다.
자세히 말하면 nodejs는 먼저 노드 바인딩의 js 코드에서 C/C 코드로 호출된 다음 C/C 코드에 "요청 객체"라는 것을 캡슐화하여 libuv에 전달합니다. 이 요청 개체 중 일부는 실행해야 하는 함수 콜백과 유사합니다. libuv에 대한 콜백을 실행하고 실행 후 콜백을 구현하기만 하면 됩니다.
간단히 비동기 I/O의 일반적인 프로세스는 다음과 같습니다.
1. I/O 호출을 시작합니다
사용자가 Javascript 코드에서 Node 코어 모듈을 호출하고 매개변수와 콜백 함수를 코어 모듈에 전달합니다.
Node 코어 모듈은 전달된 매개변수와 콜백 함수를 요청 객체에 캡슐화합니다. .
이 요청 개체를 I/O 스레드 풀에 푸시하여 실행을 기다립니다.
Javascript 비동기 호출이 종료되고 Javascript 스레드는 계속해서 후속 작업을 수행합니다.
2. 콜백 실행
I/O 작업이 완료되면 이전에 요청 객체에 캡슐화된 콜백 함수를 검색하여 실행하여 Javascript 콜백의 목적을 달성합니다. (여기서 콜백에 대한 자세한 내용은 아래에 설명되어 있습니다.)
여기에서 볼 수 있듯이 실제로 우리는 Node.js의 단일 스레드를 오해하고 있었습니다.
사실 단일 스레드는 Javascript 런타임 환경의 단일 스레드를 의미합니다. Node.js에는 Javascript를 실행할 때 새 스레드를 생성하는 기능이 없습니다. 최종 실제 작업은 여전히 Libuv 및 해당 이벤트 루프에서 수행됩니다. 이것이 단일 스레드 언어인 Javascript가 Node.js에서 비동기 작업을 구현할 수 있는 이유입니다. 둘은 충돌하지 않을 것이다.
확장된 지식:
Node.js 멀티 스레딩 개요
어떤 사람들은 Node.js가 단일 스레드이지만 순환 이벤트(이벤트 루프)를 사용하여 동시 실행 작업을 구현할 수 있다고 말할 수 있습니다. 본질을 조사해 보면 NodeJ는 실제로 두 개의 서로 다른 스레드를 사용합니다. 하나는 루프 이벤트를 처리하기 위한 기본 스레드이고 다른 하나는 작업자 풀의 일부 보조 스레드입니다. 이 두 스레드의 주요 기능과 관계는 그림과 같습니다.
권장 학습: "nodejs 비디오 튜토리얼"
위 내용은 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)

뜨거운 주제











Node.js는 서버측 JavaScript 런타임인 반면, Vue.js는 대화형 사용자 인터페이스를 생성하기 위한 클라이언트측 JavaScript 프레임워크입니다. Node.js는 백엔드 서비스 API 개발, 데이터 처리 등 서버 측 개발에 사용되고, Vue.js는 단일 페이지 애플리케이션, 반응형 사용자 인터페이스 등 클라이언트 측 개발에 사용됩니다.

Node.js는 고성능, 확장성, 크로스 플랫폼 지원, 풍부한 생태계, 개발 용이성 등의 기능을 제공하므로 백엔드 프레임워크로 사용할 수 있습니다.

MySQL 데이터베이스에 연결하려면 다음 단계를 따라야 합니다. mysql2 드라이버를 설치합니다. mysql2.createConnection()을 사용하여 호스트 주소, 포트, 사용자 이름, 비밀번호 및 데이터베이스 이름이 포함된 연결 개체를 만듭니다. 쿼리를 수행하려면 Connection.query()를 사용하세요. 마지막으로 Connection.end()를 사용하여 연결을 종료합니다.

Node.js에는 다음과 같은 전역 변수가 존재합니다. 전역 개체: 전역 핵심 모듈: 프로세스, 콘솔, 필수 런타임 환경 변수: __dirname, __filename, __line, __column 상수: undefine, null, NaN, Infinity, -Infinity

Node.js와 Java의 주요 차이점은 디자인과 기능입니다. 이벤트 중심 대 스레드 중심: Node.js는 이벤트 중심이고 Java는 스레드 중심입니다. 단일 스레드 대 다중 스레드: Node.js는 단일 스레드 이벤트 루프를 사용하고 Java는 다중 스레드 아키텍처를 사용합니다. 런타임 환경: Node.js는 V8 JavaScript 엔진에서 실행되는 반면 Java는 JVM에서 실행됩니다. 구문: Node.js는 JavaScript 구문을 사용하고 Java는 Java 구문을 사용합니다. 목적: Node.js는 I/O 집약적인 작업에 적합한 반면, Java는 대규모 엔터프라이즈 애플리케이션에 적합합니다.

Node.js 설치 디렉터리에는 npm과 npm.cmd라는 두 가지 npm 관련 파일이 있습니다. 차이점은 다음과 같습니다. 확장자가 다릅니다. npm은 실행 파일이고 npm.cmd는 명령 창 바로 가기입니다. Windows 사용자: npm.cmd는 명령 프롬프트에서 사용할 수 있으며, npm은 명령줄에서만 실행할 수 있습니다. 호환성: npm.cmd는 Windows 시스템에만 해당되며 npm은 크로스 플랫폼에서 사용할 수 있습니다. 사용 권장사항: Windows 사용자는 npm.cmd를 사용하고, 기타 운영 체제는 npm을 사용합니다.

예, Node.js는 백엔드 개발 언어입니다. 서버 측 비즈니스 로직 처리, 데이터베이스 연결 관리, API 제공 등 백엔드 개발에 사용됩니다.

Node.js 프로젝트의 서버 배포 단계: 배포 환경 준비: 서버 액세스 권한 획득, Node.js 설치, Git 저장소 설정. 애플리케이션 빌드: npm run build를 사용하여 배포 가능한 코드와 종속성을 생성합니다. Git 또는 파일 전송 프로토콜을 통해 서버에 코드를 업로드합니다. 종속성 설치: SSH를 서버에 연결하고 npm install을 사용하여 애플리케이션 종속성을 설치합니다. 애플리케이션 시작: node index.js와 같은 명령을 사용하여 애플리케이션을 시작하거나 pm2와 같은 프로세스 관리자를 사용합니다. 역방향 프록시 구성(선택 사항): Nginx 또는 Apache와 같은 역방향 프록시를 사용하여 트래픽을 애플리케이션으로 라우팅합니다.
