


Comment créer un processus enfant à l'aide de node.js (tutoriel détaillé)
Quand j'ai lu le chapitre sur le multi-processus auparavant, j'ai trouvé qu'il y avait beaucoup de choses à ce sujet. Je l'ai également mentionné lorsque j'écrivais le module Processus, je me suis réveillé de ma pause déjeuner cet après-midi et je me suis calmé. Je l'ai lu attentivement et j'ai constaté qu'il n'était pas trop difficile à comprendre. Ainsi, l'article suivant vous présente principalement les informations pertinentes sur la façon de créer un processus enfant à l'aide de node.js. Les amis dans le besoin peuvent s'y référer.
Avant-propos
Le nœud lui-même est un processus unique et utilise le mode pilote pour gérer la concurrence afin de résoudre le gaspillage de ressources d'un seul. processus sur un processeur multicœur, Node fournit les modules cluster et child_process pour créer plusieurs processus enfants.
Node.js est monothread, ce qui est un gaspillage pour les machines multiprocesseurs. Comment peut-il être utilisé ? Le module child_process est donc apparu. Le module child_process peut générer, créer et effectuer des travaux sur d'autres processus.
Le module child_process fournit une nouvelle classe ChildProcess, qui peut être utilisée comme représentation de l'accès à un processus enfant à partir d'un processus parent. Le module Process est également un objet ChildProcess. Lorsque vous accédez au processus à partir du module parent, il s'agit de l'objet ChildProcess parent. Lorsque vous accédez à Process à partir du processus enfant, il s'agit de l'objet ChildProcess
Comprendre un objet n'est rien de plus que des événements, des méthodes et des propriétés. Il en va de même pour ChildProcess.
Chaque processus enfant a toujours trois objets de flux : child.stdin, child.stdout, child.stderr. Ils peuvent partager le flux stdio du processus parent.
Ici, nous présentons d'abord comment faire fonctionner le processus enfant en utilisant les trois méthodes exec, spawn et fork dans le module child_process.
Créez le fichier node-childProcess et créez-y le fichier node-childPro.js.
Une ligne de code est la suivante :
console.log("进程 " + process.argv[2] + " 执行。" ); //换成下面的查看process.argv //console.log("进程 " + process.argv + " 执行。" );
Méthode exec()
Créez-en une nouvelle dans le fichier node-childProcess node-childPro-exec.js, le code est le suivant :
const fs = require('fs'); const child_process = require('child_process'); for (var i = 0; i < 3; i++) { //这里有空格请注意。分别代表node路径 node-childPro.js路径 i第几个进程。 node-childPro.js中的process.argv可以获取这些信息值 var childProcess = child_process.exec('node node-childPro.js '+i, // 回调函数 子进程的输出以回调函数参数的形式返回 function (error, stdout, stderr) { if (error) { console.log(error.stack); console.log('Error code: ' + error.code); console.log('Signal received: ' + error.signal); } console.log('stdout: ' + stdout); console.log('stderr: ' + stderr); }); childProcess.on('exit', function (code) { console.log('子进程已退出,退出码 ' + code); }); }
Le résultat du code d'exécution du terminal est le suivant :
G:\node\node-childProcess> node node-childPro-exec.js 子进程已退出,退出码 0 stdout: 进程 0 执行。 stderr: 子进程已退出,退出码 0 stdout: 进程 1 执行。 stderr: 子进程已退出,退出码 0 stdout: 进程 2 执行。 stderr:
Méthode spawn()
Créez un nouveau node-childPro-spawn.js dans le fichier node-childProcess, avec le code suivant :
const fs = require('fs'); const child_process = require('child_process'); for(var i=0; i<3; i++) { var childProcess = child_process.spawn('node', ['node-childPro-spawn.js', i]); childProcess.stdout.on('data', function (data) { console.log('stdout: ' + data); }); childProcess.stderr.on('data', function (data) { console.log('stderr: ' + data); }); childProcess.on('close', function (code) { console.log('子进程已退出,退出码 '+code); }); }
Le résultat de l'exécution du code sur le terminal est le suivant :
G:\node\node-childProcess> node node-childPro-spawn.js stdout: 进程 0 执行。 子进程已退出,退出码 0 stdout: 进程 1 执行。 stdout: 进程 2 执行。 子进程已退出,退出码 0 子进程已退出,退出码 0
Méthode fork()
Créer un nouveau node-childPro -fork.js dans le fichier node-childProcess, avec le code comme suit :
const fs = require('fs'); const child_process = require('child_process'); for(var i=0; i<3; i++) { var childProcess = child_process.fork("node-childPro.js", [i]); childProcess.on('close', function (code) { console.log('子进程已退出,退出码 ' + code); }); }
Les résultats du code d'exécution du terminal sont les suivants :
G:\node\node-childProcess> node node-childPro-fork.js 进程 0 执行。 进程 1 执行。 子进程已退出,退出码 0 进程 2 执行。 子进程已退出,退出码 0 子进程已退出,退出码 0
À propos de exec, spawn, fork
1. La fonction exec est une extension de spawn Une sorte d'encapsulation conviviale, en ajoutant l'analyse des commandes Shell, vous pouvez directement intégrer des commandes complexes
2. La fonction exec met en cache la sortie du sous-processus et renvoie la sortie du sous-processus sous la forme de paramètres de fonction de rappel
3. Une fois que le thread enfant commence à s'exécuter, le spawn commence à renvoie continuellement les données du processus enfant au processus principal (scénarios d'application tels que "surveillance du système")
4.spawn ne prend pas en charge la fonction de rappel, il transmet le flux Envoyer les données au processus principal, réalisant ainsi échange de données entre plusieurs processus
5. fork() est un cas particulier de spawn(), utilisé pour dériver les processus Node. En plus de toutes les méthodes d'une instance ChildProcess normale, l'objet renvoyé possède également des canaux de communication intégrés.
Ce qui précède est ce que j'ai compilé pour vous. J'espère que cela vous sera utile à l'avenir.
Articles associés :
Comment implémenter la communication entre composants dans vue-cli
Utiliser angulaire pour écrire le composant Message
Comment lier une source de données Json à l'aide d'EasyUI
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!

Outils d'IA chauds

Undresser.AI Undress
Application basée sur l'IA pour créer des photos de nu réalistes

AI Clothes Remover
Outil d'IA en ligne pour supprimer les vêtements des photos.

Undress AI Tool
Images de déshabillage gratuites

Clothoff.io
Dissolvant de vêtements AI

Video Face Swap
Échangez les visages dans n'importe quelle vidéo sans effort grâce à notre outil d'échange de visage AI entièrement gratuit !

Article chaud

Outils chauds

Bloc-notes++7.3.1
Éditeur de code facile à utiliser et gratuit

SublimeText3 version chinoise
Version chinoise, très simple à utiliser

Envoyer Studio 13.0.1
Puissant environnement de développement intégré PHP

Dreamweaver CS6
Outils de développement Web visuel

SublimeText3 version Mac
Logiciel d'édition de code au niveau de Dieu (SublimeText3)

Node.js peut être utilisé comme framework backend car il offre des fonctionnalités telles que des performances élevées, l'évolutivité, la prise en charge multiplateforme, un écosystème riche et une facilité de développement.

Pour vous connecter à une base de données MySQL, vous devez suivre ces étapes : Installez le pilote mysql2. Utilisez mysql2.createConnection() pour créer un objet de connexion contenant l'adresse de l'hôte, le port, le nom d'utilisateur, le mot de passe et le nom de la base de données. Utilisez connection.query() pour effectuer des requêtes. Enfin, utilisez connection.end() pour mettre fin à la connexion.

Les variables globales suivantes existent dans Node.js : Objet global : global Module principal : processus, console, nécessiter Variables d'environnement d'exécution : __dirname, __filename, __line, __column Constantes : undefined, null, NaN, Infinity, -Infinity

Il existe deux fichiers liés à npm dans le répertoire d'installation de Node.js : npm et npm.cmd. Les différences sont les suivantes : différentes extensions : npm est un fichier exécutable et npm.cmd est un raccourci de fenêtre de commande. Utilisateurs Windows : npm.cmd peut être utilisé à partir de l'invite de commande, npm ne peut être exécuté qu'à partir de la ligne de commande. Compatibilité : npm.cmd est spécifique aux systèmes Windows, npm est disponible multiplateforme. Recommandations d'utilisation : les utilisateurs Windows utilisent npm.cmd, les autres systèmes d'exploitation utilisent npm.

Explication détaillée et guide d'installation pour les nœuds de pignon Cet article introduira l'écosystème de pignon en détail - nœuds PI, un rôle clé dans l'écosystème de pignon et fournir des étapes complètes pour l'installation et la configuration. Après le lancement du réseau de test de la blockchain pèse, les nœuds PI sont devenus une partie importante de nombreux pionniers participant activement aux tests, se préparant à la prochaine version du réseau principal. Si vous ne connaissez pas encore Pinetwork, veuillez vous référer à ce qu'est Picoin? Quel est le prix de l'inscription? PI Utilisation, exploitation minière et sécurité. Qu'est-ce que Pinetwork? Le projet Pinetwork a commencé en 2019 et possède sa pièce exclusive de crypto-monnaie PI. Le projet vise à en créer un que tout le monde peut participer

Les principales différences entre Node.js et Java résident dans la conception et les fonctionnalités : Piloté par les événements ou piloté par les threads : Node.js est piloté par les événements et Java est piloté par les threads. Monothread ou multithread : Node.js utilise une boucle d'événements monothread et Java utilise une architecture multithread. Environnement d'exécution : Node.js s'exécute sur le moteur JavaScript V8, tandis que Java s'exécute sur la JVM. Syntaxe : Node.js utilise la syntaxe JavaScript, tandis que Java utilise la syntaxe Java. Objectif : Node.js convient aux tâches gourmandes en E/S, tandis que Java convient aux applications de grande entreprise.

Oui, Node.js est un langage de développement backend. Il est utilisé pour le développement back-end, notamment la gestion de la logique métier côté serveur, la gestion des connexions à la base de données et la fourniture d'API.

Étapes de déploiement de serveur pour un projet Node.js : Préparez l'environnement de déploiement : obtenez l'accès au serveur, installez Node.js, configurez un référentiel Git. Créez l'application : utilisez npm run build pour générer du code et des dépendances déployables. Téléchargez le code sur le serveur : via Git ou File Transfer Protocol. Installer les dépendances : connectez-vous en SSH au serveur et installez les dépendances de l'application à l'aide de npm install. Démarrez l'application : utilisez une commande telle que node index.js pour démarrer l'application ou utilisez un gestionnaire de processus tel que pm2. Configurer un proxy inverse (facultatif) : utilisez un proxy inverse tel que Nginx ou Apache pour acheminer le trafic vers votre application
