child_process는 Node.js_node.js에서 다중 프로세스를 구현합니다.
var http = require('http');
함수 fib (n) {
If (n 1을 반환;
} 그 밖의 {
fib(n - 2) fib(n - 1)을 반환합니다.
}
}
var 서버 = http.createServer(function (req, res) {
var num =parseInt(req.url.substring(1), 10);
res.writeHead(200);
res.end(fib(num) "n");
});
server.listen(8000);
위의 예에서는 피보나치 수열 계산 서비스를 제공합니다. 이 계산은 시간이 많이 걸리고 단일 스레드이므로 동시에 여러 요청이 있는 경우 child_process로 이 문제를 해결할 수 있습니다. 포크() 이 질문
다음은 공식 홈페이지의 예입니다. 이를 통해 fork()의 기능을 더 잘 이해할 수 있습니다
var cp = require('child_process');
var n = cp.fork(__dirname '/sub.js');
n.on('메시지', function(m) {
console.log('PARENT가 메시지를 받았습니다:', m);
});
n.send({ hello: 'world' });
위 코드 스니펫을 실행한 결과:
PARENT님이 메시지를 받았습니다: { foo: 'bar' }
어린이가 메시지를 받았습니다: { hello: 'world' }
sub.js의 내용은 다음과 같습니다.
process.on('메시지', function(m) {
console.log('CHILD가 메시지를 받았습니다:', m);
});
process.send({ foo: 'bar' });
하위 프로세스에서 프로세스 개체에는 send() 메서드가 있으며 메시지를 받을 때마다 메시지 개체를 게시합니다.
조금 혼란스러운 점은 child.send()가 보낸 메시지는 process.on() 메서드가 수신하고, process.send() 메서드가 보낸 메시지는 child.on()이 수신한다는 것입니다. 방법
이 예를 참조하면 각 요청을 처리할 별도의 새로운 프로세스가 있도록 피보나치 데이터를 제공하는 첫 번째 서비스를 개선할 수 있습니다.
var http = require('http');
var cp = require('child_process');
var 서버 = http.createServer(function(req, res) {
var child = cp.fork(__dirname '/fibonacci-calc.js');//각 요청은 새로운 하위 프로세스를 생성합니다
child.on('메시지', function(m) {
res.end(m.result 'n');
});
var 입력 = parsInt(req.url.substring(1));
child.send({입력 : 입력});
});
server.listen(8000);
fibonacci-calc.js
함수 fib(n) {
If (n 1을 반환;
} 그 밖의 {
fib(n - 2) fib(n - 1)을 반환합니다.
}
}
process.on('메시지', function(m) {
Process.send({결과: fib(m.input)});
});
서비스 시작 후 http://localhost:8080/9에 접속하여 피보나치 수열 9의 값을 계산해 보세요
위 내용은 이 글의 전체 내용입니다. 모두 마음에 드셨으면 좋겠습니다.

핫 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)

뜨거운 주제











Non-Blocking, Event-Driven 기반으로 구축된 Node 서비스는 메모리 소모가 적다는 장점이 있으며, 대규모 네트워크 요청을 처리하는데 매우 적합합니다. 대규모 요청을 전제로 '메모리 제어'와 관련된 문제를 고려해야 합니다. 1. V8의 가비지 수집 메커니즘과 메모리 제한 Js는 가비지 수집 기계에 의해 제어됩니다.

이 기사는 NodeJS V8 엔진의 메모리 및 가비지 수집기(GC)에 대한 심층적인 이해를 제공할 것입니다. 도움이 되기를 바랍니다.

파일 모듈은 파일 읽기/쓰기/열기/닫기/삭제 추가 등과 같은 기본 파일 작업을 캡슐화한 것입니다. 파일 모듈의 가장 큰 특징은 모든 메소드가 **동기** 및 ** 두 가지 버전을 제공한다는 것입니다. 비동기**, sync 접미사가 있는 메서드는 모두 동기화 메서드이고, 없는 메서드는 모두 이기종 메서드입니다.

동시성 프로그래밍 언어인 Golang의 내장 코루틴 메커니즘과 멀티스레드 작업은 가벼운 멀티태스킹을 가능하게 합니다. 그러나 다중 프로세스 처리 시나리오에서는 서로 다른 프로세스 간의 통신 및 공유 메모리가 프로그램 개발의 주요 문제가 되었습니다. 이번 글에서는 Golang에서 여러 프로세스 간 공유 메모리를 구현하는 응용 방법을 소개합니다. 1. Golang에서 다중 프로세스 구현 방법 Golang에서는 다중 프로세스 동시 처리를 포크(fork), os.Process,

노드가 npm 명령을 사용할 수 없는 이유는 환경 변수가 올바르게 구성되지 않았기 때문입니다. 해결 방법은 다음과 같습니다. 1. "시스템 속성"을 엽니다. 2. "환경 변수" -> "시스템 변수"를 찾은 다음 환경을 편집합니다. 3. nodejs 폴더의 위치를 찾습니다. 4. "확인"을 클릭합니다.

이벤트 루프는 Node.js의 기본 부분이며 메인 스레드가 차단되지 않도록 하여 비동기 프로그래밍을 가능하게 합니다. 이벤트 루프를 이해하는 것은 효율적인 애플리케이션을 구축하는 데 중요합니다. 다음 기사는 Node.js의 이벤트 루프에 대한 심층적인 이해를 제공할 것입니다. 도움이 되기를 바랍니다!

초기에 JS는 브라우저 측에서만 실행되었습니다. 유니코드로 인코딩된 문자열은 처리하기 쉬웠지만 바이너리 및 유니코드가 아닌 인코딩된 문자열을 처리하는 것은 어려웠습니다. 그리고 바이너리는 컴퓨터의 가장 낮은 데이터 형식인 비디오/오디오/프로그램/네트워크 패키지입니다.

프론트 엔드 애플리케이션 개발에 Node.js를 사용하는 방법은 무엇입니까? 다음 기사에서는 프레젠테이션 계층 애플리케이션 개발과 관련된 Node에서 프런트 엔드 애플리케이션을 개발하는 방법을 소개합니다. 오늘 제가 공유한 솔루션은 간단한 시나리오를 위한 것입니다. 이는 프런트 엔드 개발자가 코딩이 없더라도 Node.js에 대한 배경 지식과 전문 지식을 너무 많이 습득하지 않고도 간단한 서버 측 개발 작업을 완료할 수 있도록 설계되었습니다. 경험.
