Table des matières
Process
La communication inter-processus ne se rencontre pas seulement dans node, mais aussi dans d'autres langages. Bien sûr, c'est aussi une question incontournable lors de l'entretien. De nombreux contenus peuvent être discutés en profondeur !
Maison interface Web js tutoriel Node.js est-il vraiment monothread ? Comment communiquer entre les processus ?

Node.js est-il vraiment monothread ? Comment communiquer entre les processus ?

Aug 02, 2021 pm 06:44 PM
node.js fil unique

Cet article vous présentera les processus et les threads, vous fera comprendre les threads dans Node.js, verra si le nœud est vraiment monothread, les modules child_process et cluster, et expliquera brièvement comment communiquer entre plusieurs threads.

Node.js est-il vraiment monothread ? Comment communiquer entre les processus ?

Process

Dans le système d'exploitation, l'explication du processus : Un processus est un processus d'exécution dynamique d'un programme avec certaines fonctions indépendantes sur un ensemble de données. C'est le système d'exploitation qui alloue et planifie les ressources. . Une unité indépendante qui est le support sur lequel l'application s'exécute.

  • est un processus en cours d'exécution d'une application (concept dynamique)

  • est l'unité de base pour l'allocation du système et la planification des ressources (un processus est généralement composé de trois parties : programme, collecte de données et bloc de contrôle de processus)

  • Chaque Chaque processus a sa propre adresse d'espace indépendante et sa propre pile de données (les données ne sont pas partagées entre les processus et peuvent être communiquées via d'autres méthodes. Les processus ont généralement cinq états : état initial, état d'exécution, état d'attente, état prêt et). état de terminaison

Thread

Un thread est un processus de contrôle séquentiel unique dans l'exécution d'un programme. Il s'agit de la plus petite unité du flux d'exécution du programme et de l'unité de base de la planification et de la répartition du processeur. "La plus petite unité de planification et d'exécution des tâches" est la plus petite unité de ressources allouée par le système d'exploitation. Un processus unitaire se compose d'un ou plusieurs threads. Les threads sont différentes routes d'exécution de code dans un processus. Les processus sont indépendants les uns des autres, mais l'espace mémoire du programme est partagé entre les threads. dans le même processus. Le changement de contexte de thread est plus rapide que le changement de contexte de processus

    Le processus dans
  • node

  • node est monothread, c'est-à-dire qu'un processus n'ouvre qu'un seul nœud de thread. [Apprentissage recommandé : "
  • Tutoriel Nodejs

    "]

  • Est-ce vraiment mono-thread ?

Le nœud est monothread, mais sa couche sous-jacente est multithread. Dans la boucle d'événements, la bibliothèque libuv supprime les tâches de la file d'attente des événements et les affecte à différents threads pour traitement. Désormais, les conditions matérielles ne sont plus aussi arriérées qu'avant. Si un seul thread est utilisé pour le fonctionnement, les ressources seront gaspillées. Par conséquent, afin de réaliser un traitement multi-processus et de tirer pleinement parti des avantages des processeurs multicœurs, Node fournit le module child_process et le module cluster.

Le module child_process est utilisé pour démarrer plusieurs processus enfants, qui exécutent différentes commandes ou exécutent des fichiers de module node.js et des fichiers exécutables

Module cluster, module cluster, utilisé pour implémenter des applications Node.js Ouvrir plusieurs processus enfants dans chaque processus enfant et exécutez une copie de l'application Node.js pour le traitement

child_process module

    child_process.spawn() : convient pour renvoyer de grandes quantités de données, telles que le traitement d'images, le traitement des données binaires .
  • child_process.exec() : convient aux petites quantités de données. La valeur par défaut de maxBuffer est 200 * 1024. Le dépassement de cette valeur par défaut entraînera le crash du programme. Si la quantité de données est trop importante, le spawn peut être. utilisé.
  • child_process.execFile() : similaire à child_process.exec(), la différence est qu'il ne peut pas être exécuté via le shell et ne prend pas en charge des comportements tels que la redirection d'E/S et la recherche de fichiers

child_process.fork () : Les nouveaux processus dérivés sont indépendants les uns des autres. Chaque processus a sa propre instance V8 et les ressources système sont limitées. Il n'est pas recommandé de générer trop de processus enfants. Il est généralement défini en fonction du nombre de processeurs système. noyaux.

  • module cluster
  • cluster.fork([env]) démarre le processus enfant et crée une instance de l'application Node.js dans le processus enfant
  • Les attributs isMaster et isWorker sont utilisés pour déterminer s'il faut s'exécuter dans le processus principal ou dans un sous-processus ? La propriété Workers est utilisée pour obtenir les objets de travail exécutés dans tous les sous-processus. Pour développer, comment plusieurs threads communiquent-ils ?
  • Communication inter-processus

Quatre types :

    Passage de messages (pipeline, FIFO, file d'attente de messages)
  • Sémaphore (mutex, variable de condition, verrouillage en lecture-écriture)
  • Partage de mémoire ( anonyme, nommé)
  • Appel de procédure à distance

La communication inter-processus ne se rencontre pas seulement dans node, mais aussi dans d'autres langages. Bien sûr, c'est aussi une question incontournable lors de l'entretien. De nombreux contenus peuvent être discutés en profondeur !

Pour plus de connaissances sur la programmation, veuillez visiter :

Introduction à la programmation
     ! !

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!

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

Outils d'IA chauds

Undresser.AI Undress

Undresser.AI Undress

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

AI Clothes Remover

AI Clothes Remover

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

Undress AI Tool

Undress AI Tool

Images de déshabillage gratuites

Clothoff.io

Clothoff.io

Dissolvant de vêtements AI

AI Hentai Generator

AI Hentai Generator

Générez AI Hentai gratuitement.

Article chaud

R.E.P.O. Crystals d'énergie expliqués et ce qu'ils font (cristal jaune)
4 Il y a quelques semaines By 尊渡假赌尊渡假赌尊渡假赌
R.E.P.O. Meilleurs paramètres graphiques
4 Il y a quelques semaines By 尊渡假赌尊渡假赌尊渡假赌
R.E.P.O. Comment réparer l'audio si vous n'entendez personne
4 Il y a quelques semaines By 尊渡假赌尊渡假赌尊渡假赌
WWE 2K25: Comment déverrouiller tout dans Myrise
1 Il y a quelques mois By 尊渡假赌尊渡假赌尊渡假赌

Outils chauds

Bloc-notes++7.3.1

Bloc-notes++7.3.1

Éditeur de code facile à utiliser et gratuit

SublimeText3 version chinoise

SublimeText3 version chinoise

Version chinoise, très simple à utiliser

Envoyer Studio 13.0.1

Envoyer Studio 13.0.1

Puissant environnement de développement intégré PHP

Dreamweaver CS6

Dreamweaver CS6

Outils de développement Web visuel

SublimeText3 version Mac

SublimeText3 version Mac

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

Un article pour parler du contrôle de la mémoire dans Node Un article pour parler du contrôle de la mémoire dans Node Apr 26, 2023 pm 05:37 PM

Le service Node construit sur une base non bloquante et piloté par les événements présente l'avantage d'une faible consommation de mémoire et est très adapté à la gestion de requêtes réseau massives. Dans le contexte de demandes massives, les questions liées au « contrôle de la mémoire » doivent être prises en compte. 1. Le mécanisme de récupération de place du V8 et les limitations de mémoire Js sont contrôlés par la machine de récupération de place

Explication graphique détaillée de la mémoire et du GC du moteur Node V8 Explication graphique détaillée de la mémoire et du GC du moteur Node V8 Mar 29, 2023 pm 06:02 PM

Cet article vous donnera une compréhension approfondie de la mémoire et du garbage collector (GC) du moteur NodeJS V8. J'espère qu'il vous sera utile !

Parlons de la façon de choisir la meilleure image Docker Node.js ? Parlons de la façon de choisir la meilleure image Docker Node.js ? Dec 13, 2022 pm 08:00 PM

Le choix d'une image Docker pour Node peut sembler trivial, mais la taille et les vulnérabilités potentielles de l'image peuvent avoir un impact significatif sur votre processus CI/CD et votre sécurité. Alors, comment choisir la meilleure image Docker Node.js ?

Parlons en profondeur du module File dans Node Parlons en profondeur du module File dans Node Apr 24, 2023 pm 05:49 PM

Le module de fichiers est une encapsulation des opérations de fichiers sous-jacentes, telles que l'ajout de lecture/écriture/ouverture/fermeture/suppression de fichiers, etc. La plus grande caractéristique du module de fichiers est que toutes les méthodes fournissent deux versions de **synchrone** et ** asynchrone**, with Les méthodes avec le suffixe sync sont toutes des méthodes de synchronisation, et celles qui n'en ont pas sont toutes des méthodes hétérogènes.

Node.js 19 est officiellement sorti, parlons de ses 6 fonctionnalités majeures ! Node.js 19 est officiellement sorti, parlons de ses 6 fonctionnalités majeures ! Nov 16, 2022 pm 08:34 PM

Node 19 est officiellement publié. Cet article vous donnera une explication détaillée des 6 fonctionnalités majeures de Node.js 19. J'espère qu'il vous sera utile !

Parlons du mécanisme GC (garbage collection) dans Node.js Parlons du mécanisme GC (garbage collection) dans Node.js Nov 29, 2022 pm 08:44 PM

Comment Node.js fait-il le GC (garbage collection) ? L’article suivant vous guidera à travers cela.

Parlons de la boucle d'événements dans Node Parlons de la boucle d'événements dans Node Apr 11, 2023 pm 07:08 PM

La boucle d'événements est un élément fondamental de Node.js et permet une programmation asynchrone en garantissant que le thread principal n'est pas bloqué. Comprendre la boucle d'événements est crucial pour créer des applications efficaces. L'article suivant vous donnera une compréhension approfondie de la boucle d'événements dans Node. J'espère qu'il vous sera utile !

Que dois-je faire si le nœud ne peut pas utiliser la commande npm ? Que dois-je faire si le nœud ne peut pas utiliser la commande npm ? Feb 08, 2023 am 10:09 AM

La raison pour laquelle le nœud ne peut pas utiliser la commande npm est que les variables d'environnement ne sont pas configurées correctement. La solution est la suivante : 1. Ouvrez "Propriétés système" ; 2. Recherchez "Variables d'environnement" -> "Variables système", puis modifiez l'environnement. variables ; 3. Recherchez l'emplacement du dossier nodejs ; 4. Cliquez sur "OK".

See all articles