2017-02-19 1 views
1

child_process 라이브러리가 포함 된 node.js 프로젝트를 읽었습니다.노드 하위 프로세스 란 무엇입니까?

정확히 어떤 하위 프로세스입니까? 이것은 자바 스크립트 웹 작업자와 비슷합니까?

단순히 프로세스를 정상적으로 실행하는 대신 하위 프로세스에서 프로세스를 실행하면 어떤 이점이 있습니까? 이걸 메모리에 더 많이 액세스 할 수있는 방법이 있다고 가정합니다.

답변

3

Linux에서 터미널 (bash 프로세스)을 실행하고 명령 (예 : ls -lh /usr)을 실행하면 터미널은 stdout에 현재 디렉터리의 모든 파일을 쓰는 자식 프로세스 ls을 시작합니다. 이제는 터미널 대신에 부모 프로세스로 node.js이 있습니다.

const spawn = require('child_process').spawn; 
const ls = spawn('ls', ['-lh', '/usr']); 

ls.stdout.on('data', (data) => { 
    console.log(`stdout: ${data}`); 
}); 

ls.stderr.on('data', (data) => { 
    console.log(`stderr: ${data}`); 
}); 

ls.on('close', (code) => { 
    console.log(`child process exited with code ${code}`); 
}); 

이 유사한 자바 스크립트 웹 노동자인가 : 당신은이 같은 아이 ls 프로세스를 시작/산란 할 수 있습니까?

웹 근로자와 비슷하지만 웹 브라우저가 브라우저에서 어떻게 구현되는지는 잘 모릅니다. AFAIK node에는 웹 워커 API가 기본적으로 제공되지 않습니다. 그러나 귀하의 자녀 과정이 node.js 과정 인 경우,이 자녀 과정을 webworker과 비슷한 것으로 볼 수 있습니다. 이 cluster API을보십시오.