Cet article partage principalement avec vous des exemples de processus de lecture node.js. node fournit le module child_process. Nous enregistrons ensuite l'exemple de code classique en tant que fichier worker.js, comme suit :
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');
let fork=require('child_process').fork; let cpus=require('os').cpus();for(let i=0;i<cpus.length;i++){ fork('./work.js'); }
Il s'agit du mode maître-ouvrier, également connu sous le nom de mode maître-esclave.
Les processus copiés par fork sont indépendants. Ce processus a une toute nouvelle instance V8 indépendante. Les processus de fork sont coûteux.
Le sous-processus dans la nouvelle version du nœud a également un sous-processus synchrone et un sous-processus asynchrone. Il s'agit du sous-processus asynchrone. -processus
- spawn() : démarre un processus enfant
- exec() : Démarre un processus enfant. La différence avec spawn est qu'il a une fonction de rappel
.
- execFile() : Démarre un processus enfant pour exécuter un fichier exécutable
- fork() : Semblable à spawn, la différence est qu'il suffit de spécifier le fichier js pour créer un sous-processus de nœud
La différence entre exec et execFile est que exec convient à l'exécution de commandes existantes et execFile convient à l'exécution de fichiers.
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 inter- communication de processus Explication détaillée
Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!