이 기사에서는 주로 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('os').cpus();for(let i=0;i<cpus.length;i++){ fork('./work.js'); }
*nix 시스템에서 ps aux|grep Worker.js를 통해 프로세스 수를 확인합니다.
마스터-슬레이브 모드라고도 알려진 마스터-워커 모드입니다.
포크에 의해 복사된 프로세스는 모두 독립적입니다. 이 프로세스는 독립적이고 새로운 V8 인스턴스를 갖습니다. 포크 프로세스는 비용이 많이 듭니다.
새 노드 버전의 하위 프로세스에도 동기 하위 프로세스와 비동기 하위 프로세스가 있습니다. 이는 비동기 하위 프로세스를 의미합니다
-spawn(): 자식 프로세스 시작
- exec(): 자식 프로세스를 시작합니다.spawn과의 차이점은 콜백 함수가 있다는 것입니다
- execFile(): 실행 파일을 실행하기 위해 하위 프로세스를 시작합니다.
- fork(): generate와 유사하지만 차이점은 노드 하위 프로세스를 생성하려면 js 파일만 지정하면 된다는 것입니다.spawn과 exec 및 execFile의 차이점은 후자 두 개가 생성될 때 지정할 수 있다는 것입니다. 시간 초과를 설정하는 시간 초과 속성. 시간이 다 되면 나중에 하위 프로세스가 종료될 수 있습니다.
let cp=require('child_process'); cp.spawn('node',['worker.js']);//没有回调函数cp.exec('node worker.js',function (err,stdout,stderr) {}); cp.execFile('worker.js',function (err,stdout,stderr) {}); cp.fork('./worker.js');
let cp=require('child_process');let n=cp.fork(__dirname+ './worker.js'); n.on('message',function (m) {}); n.send({hello:'world'});
관련 권장 사항:
PHP 프로세스 간 통신에 대한 자세한 설명위 내용은 node.js 재미있는 프로세스 인스턴스의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!