Maison > interface Web > js tutoriel > le corps du texte

Instance de processus amusante node.js

小云云
Libérer: 2018-03-17 16:39:12
original
1367 Les gens l'ont consulté


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');
Copier après la connexion
Enregistrez le code suivant sous master.js et démarrez-le via le nœud 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;);
}
Copier après la connexion
Affichez le nombre de processus via ps aux|grep worker.js sous les systèmes *nix .

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. Instance de processus amusante node.js

9.2.1 Créer un sous-processus

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 spawn et exec et execFile est que l'attribut timeout peut être spécifié lorsque les deux derniers sont créés pour définir le délai d'attente, le processus enfant peut être tué une fois le délai écoulé.

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(&#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;);
Copier après la connexion
9.2.2 Communication inter-processus

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;});
Copier après la connexion
Recommandations associées :

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!

Étiquettes associées:
source:php.cn
Déclaration de ce site Web
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn
Tutoriels populaires
Plus>
Derniers téléchargements
Plus>
effets Web
Code source du site Web
Matériel du site Web
Modèle frontal