>  기사  >  웹 프론트엔드  >  node.js 재미있는 프로세스 인스턴스

node.js 재미있는 프로세스 인스턴스

小云云
小云云원래의
2018-03-17 16:39:121369검색


이 기사에서는 주로 node.js 재생 프로세스 예제를 공유합니다. Node는 child_process 모듈을 제공합니다. 그런 다음 다음과 같이 클래식 예제 코드를 작업자.js 파일로 저장합니다.

let http=require('http');
http.createServer(function (req,res) {
    res.writeHead(200,{'Content-Type':"text/plain"});
    res.end('hello world')
}).listen(Math.round((1+Math.random())*1000),'127.0.0.1');

다음 코드를 마스터로 저장합니다. node master.js를 통해 시작합니다.

let fork=require('child_process').fork;
let cpus=require(&#39;os&#39;).cpus();for(let i=0;i<cpus.length;i++){    fork(&#39;./work.js&#39;);
}

*nix 시스템에서 ps aux|grep Worker.js를 통해 프로세스 수를 확인합니다.
마스터-슬레이브 모드라고도 알려진 마스터-워커 모드입니다.
node.js 재미있는 프로세스 인스턴스포크에 의해 복사된 프로세스는 모두 독립적입니다. 이 프로세스는 독립적이고 새로운 V8 인스턴스를 갖습니다. 포크 프로세스는 비용이 많이 듭니다.

9.2.1 하위 프로세스 생성

새 노드 버전의 하위 프로세스에도 동기 하위 프로세스와 비동기 하위 프로세스가 있습니다. 이는 비동기 하위 프로세스를 의미합니다
-spawn(): 자식 프로세스 시작
- exec(): 자식 프로세스를 시작합니다.spawn과의 차이점은 콜백 함수가 있다는 것입니다
- execFile(): 실행 파일을 실행하기 위해 하위 프로세스를 시작합니다.
- fork(): generate와 유사하지만 차이점은 노드 하위 프로세스를 생성하려면 js 파일만 지정하면 된다는 것입니다.spawn과 exec 및 execFile의 차이점은 후자 두 개가 생성될 때 지정할 수 있다는 것입니다. 시간 초과를 설정하는 시간 초과 속성. 시간이 다 되면 나중에 하위 프로세스가 종료될 수 있습니다.

exec와 execFile의 차이점은 exec는 기존 명령을 실행하는 데 적합하고 execFile은 파일을 실행하는 데 적합하다는 것입니다.

let cp=require(&#39;child_process&#39;);
cp.spawn(&#39;node&#39;,[&#39;worker.js&#39;]);//没有回调函数cp.exec(&#39;node worker.js&#39;,function (err,stdout,stderr) {});
cp.execFile(&#39;worker.js&#39;,function (err,stdout,stderr) {});
cp.fork(&#39;./worker.js&#39;);

9.2.2 프로세스 간 통신

parent.js:

let cp=require(&#39;child_process&#39;);let n=cp.fork(__dirname+ &#39;./worker.js&#39;);
n.on(&#39;message&#39;,function (m) {});
n.send({hello:&#39;world&#39;});

관련 권장 사항:

PHP 프로세스 간 통신에 대한 자세한 설명

위 내용은 node.js 재미있는 프로세스 인스턴스의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

성명:
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.