Node를 자세히 분석합니다.js 다중 프로세스
모든 하위 프로세스는 항상 세 개의 흐름 대상을 가지고 있습니다:child.stdin, child.stdout와child.stderr.그들은 부모 프로세스의 stdio 흐름을 공유할 수도 있고, 독립적으로 유도된 흐름 대상일 수도 있다.
Node는 child_를 제공합니다프로세스 모듈은 다음과 같은 방법으로 하위 프로세스를 생성합니다.
child_process.exec는 하위 프로세스를 사용하여 명령을 실행하고 하위 프로세스의 출력을 캐시하며 하위 프로세스의 출력을 리셋 함수 매개 변수로 되돌려줍니다.
구문은 다음과 같습니다.
child_process.exec(command[, options], callback)
매개 변수
매개변수 설명은 다음과 같습니다.
command: 문자열, 실행할 명령, 매개 변수는 공백으로 구분합니다
options: 객체, 다음을 수행할 수 있습니다.
exec () 방법은 가장 큰 버퍼를 되돌려주고 프로세스가 끝날 때까지 기다리며 버퍼의 내용을 한꺼번에 되돌려줍니다.
인스턴스
두 개의 js 파일 지원을 만듭니다.js와 마스터.js.
support.js 파일 코드:
console.log(" " + process.argv[2] + " 。" );
master.js 파일 코드:
const fs = require('fs');
const child_process = require('child_process');
for(var i=0; i<3; i++) {
var workerProcess = child_process.exec('node support.js '+i, function (error, stdout, stderr) {
if (error) {
console.log(error.stack);
console.log('Error code: '+error.code);
console.log('Signal received: '+error.signal);
}
console.log('stdout: ' + stdout);
console.log('stderr: ' + stderr);
});
workerProcess.on('exit', function (code) {
console.log(' , '+code);
});
}
위의 코드를 실행하면 출력 결과는 다음과 같습니다.$ node master.js
하위 프로세스가 종료되었습니다. 종료 코드 0
stdout: 프로세스 1 실행.
stderr:
하위 프로세스가 종료되었습니다. 종료 코드 0
stdout: 프로세스 0이 실행됩니다.
stderr:
하위 프로세스가 종료되었습니다. 종료 코드 0
stdout: 프로세스 2 실행.
stderr:
spawn () 방법
child_process.spawn은 다음과 같은 구문 형식으로 지정된 명령줄 매개변수를 사용하여 새 프로세스를 생성합니다.
child_process.spawn(command[, args][, options])
매개 변수
매개변수 설명은 다음과 같습니다.
command: 실행할 명령
args:Array 문자열 매개 변수 그룹
options Object
인스턴스
두 개의 js 파일 지원을 만듭니다.js와 마스터.js.
support.js 파일 코드:
console.log(" " + process.argv[2] + " 。" );
master.js 파일 코드:
const fs = require('fs');
const child_process = require('child_process');
for(var i=0; i<3; i++) {
var workerProcess = child_process.spawn('node', ['support.js', i]);
workerProcess.stdout.on('data', function (data) {
console.log('stdout: ' + data);
});
workerProcess.stderr.on('data', function (data) {
console.log('stderr: ' + data);
});
workerProcess.on('close', function (code) {
console.log(' , '+code);
});
}
위의 코드를 실행하면 출력 결과는 다음과 같습니다.$ node master.js stdout: 프로세스 0 실행.
하위 프로세스가 종료되었습니다. 종료 코드 0
stdout: 프로세스 1 실행.
하위 프로세스가 종료되었습니다. 종료 코드 0
stdout: 프로세스 2 실행.
하위 프로세스가 종료되었습니다. 종료 코드 0
fork 방법
child_process.fork는 spawn () 방법의 특수한 형식으로 프로세스를 만드는 데 사용됩니다. 문법 형식은 다음과 같습니다.
child_process.fork(modulePath[, args][, options])
매개 변수
매개변수 설명은 다음과 같습니다.
modulePath:String, 하위 프로세스에서 실행될 모듈
args:Array 문자열 매개 변수 그룹
options:Object
인스턴스
두 개의 js 파일 지원을 만듭니다.js와 마스터.js.
support.js 파일 코드:
console.log(" " + process.argv[2] + " 。" );
master.js 파일 코드:
const fs = require('fs');
const child_process = require('child_process');
for(var i=0; i<3; i++) {
var worker_process = child_process.fork("support.js", [i]);
worker_process.on('close', function (code) {
console.log(' , ' + code);
});
}
위의 코드를 실행하면 출력 결과는 다음과 같습니다.$ node master.js
프로세스 0이 실행됩니다.
하위 프로세스가 종료되었습니다. 종료 코드 0
프로세스 1이 실행됩니다.
하위 프로세스가 종료되었습니다. 종료 코드 0
프로세스 2가 실행됩니다.
하위 프로세스가 종료되었습니다. 종료 코드 0
이상은 Node를 자세히 분석한 것입니다.js 다중 프로세스의 상세한 내용, 더 많은 Node.js 다중 프로세스의 자료는 우리의 다른 관련 문장을 주목하세요!
이 내용에 흥미가 있습니까?
현재 기사가 여러분의 문제를 해결하지 못하는 경우 AI 엔진은 머신러닝 분석(스마트 모델이 방금 만들어져 부정확한 경우가 있을 수 있음)을 통해 가장 유사한 기사를 추천합니다:
Express + AWS S3 이미지 업로드하기웹 사이트 및 모바일 애플리케이션 등에서 원하는 양의 데이터를 저장하고 보호할 수 있다. 데이터에 대한 액세스를 최적화, 구조화 및 구성할 수 있는 관리 기능을 제공한다. AWS S3 에 저장된 객체에 대한 컨테이너...
텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
CC BY-SA 2.5, CC BY-SA 3.0 및 CC BY-SA 4.0에 따라 라이센스가 부여됩니다.