Maison >interface Web >Questions et réponses frontales >Quelle est la différence entre les processus et les threads en JavaScript

Quelle est la différence entre les processus et les threads en JavaScript

青灯夜游
青灯夜游original
2021-06-09 17:13:043068parcourir

Différence : le processus a un espace d'adressage indépendant. Après le crash d'un processus, cela n'affectera pas les autres processus en mode protégé ; les threads sont simplement des chemins d'exécution différents dans un processus (un processus se compose d'un ou plusieurs composés). threads), il n’y a pas d’espace d’adressage séparé (mémoire partagée) entre les threads. La mort d’un thread équivaut à la mort de l’ensemble du processus.

Quelle est la différence entre les processus et les threads en JavaScript

L'environnement d'exploitation de ce tutoriel : système Windows 7, JavaScript version 1.8.5, ordinateur Dell G3. Les

Les threads sont divisés en : monothread et multithread

Monothread : un programme en cours d'exécution (c'est-à-dire en cours) a au moins un thread, Ce thread est appelé le thread principal. Un programme avec un seul thread principal est appelé un programme monothread. Le thread principal est responsable de l'exécution de tous les codes (affichage et actualisation de l'interface utilisateur, requêtes réseau, stockage local, etc.). .). Ces codes ne peuvent être exécutés que séquentiellement et ne peuvent pas être exécutés simultanément.

Multi-threading : Un programme avec plusieurs threads est appelé un programme multi-thread. Le thread principal peut ouvrir plusieurs sous-threads et le thread principal sont des unités d'exécution indépendantes. ne s'affectent pas et peuvent être exécutés simultanément.

La différence entre un seul thread et multi-thread :

Un seul thread : il n'y a qu'un seul thread, le code est exécuté séquentiellement, et le blocage du code est susceptible de se produire (la page se fige) ;

Multi-threading : avoir plusieurs threads qui s'exécutent indépendamment peut efficacement éviter le blocage du code et améliorer les performances d'exécution du code.

Processus Définition : Un processus est un programme continu. C'est un concept dynamique. Il s'agit de l'unité de base pour l'allocation des ressources et la planification dans le système.

La différence entre les processus et les threads :

Un programme comprend au moins un processus, et un processus comprend au moins un thread

Les multi-processus ont une mémoire indépendante et les multi-threads partagent la mémoire, donc le multi-threading améliore l'efficacité opérationnelle

L'importance importante du multi-threading est que plusieurs programmes peuvent être exécutés en même temps ; , mais le système ne traite pas le multithreading en plusieurs applications indépendantes.

Compréhension approfondie :

Exemple :

1. Le cœur de l'ordinateur est le processeur , qui est responsable de toutes les tâches informatiques. C'est comme une usine qui tourne tout le temps.

2. Supposons que la puissance de l’usine soit limitée et ne puisse être fournie qu’à un seul atelier à la fois. En d’autres termes, lorsqu’un atelier commence à fonctionner, les autres ateliers doivent cesser de fonctionner. La signification derrière cela est qu’un seul processeur ne peut exécuter qu’une seule tâche à la fois.

3. Un processus est comme une usine, il représente une tâche unique que le processeur peut gérer. À tout moment, le processeur exécute toujours un processus et les autres processus sont dans un état non exécuté.

4. Il peut y avoir plusieurs ouvriers dans un atelier. Ils travaillent ensemble pour accomplir une mission.

5. Les fils sont comme des ouvriers dans un atelier. Un processus peut inclure plusieurs threads.

6. L'espace de l'atelier est partagé par les travailleurs. Par exemple, de nombreuses pièces peuvent être entrées et sorties par chaque travailleur. Cela symbolise que l'espace mémoire d'un processus est partagé et que chaque thread peut utiliser ces mémoires partagées.

7. Cependant, la taille de chaque pièce est différente, et certaines pièces ne peuvent accueillir qu'une seule personne au maximum, comme les toilettes. Quand il y a du monde à l’intérieur, personne d’autre ne peut entrer. Cela signifie que lorsqu'un thread utilise de la mémoire partagée, les autres threads doivent attendre qu'il se termine avant de pouvoir utiliser cette mémoire.

8. Un moyen simple d'empêcher les autres d'entrer est d'ajouter une serrure à la porte. Ceux qui sont arrivés les premiers ont verrouillé la porte, et ceux qui sont arrivés plus tard ont vu la serrure et se sont alignés devant la porte, attendant que la serrure s'ouvre avant d'entrer. C'est ce qu'on appelle

"verrouillage d'exclusion mutuelle" (Exclusion mutuelle, en abrégé Mutex), qui empêche plusieurs threads de lire et d'écrire une certaine zone mémoire en même temps.

9. Il existe également certaines pièces pouvant accueillir n personnes en même temps, comme la cuisine. En d’autres termes, si le nombre de personnes est supérieur à n, les personnes supplémentaires ne peuvent attendre qu’à l’extérieur. C'est comme certaines zones de mémoire qui ne peuvent être utilisées que par un nombre fixe de threads.

10. La solution en ce moment est d'accrocher n clés à la porte. La personne qui entre prend une clé et la raccroche lorsqu'elle sort. Ceux qui sont arrivés en retard ont constaté que les clés étaient vides, ils savaient donc qu'ils devaient faire la queue à la porte. Cette approche est appelée "Sémaphore" (Sémaphore), qui est utilisée pour garantir que plusieurs threads n'entreront pas en conflit les uns avec les autres. Il n'est pas difficile de voir que le mutex est un cas particulier de sémaphore (quand n=1). En d’autres termes, cette dernière peut remplacer complètement la première. Cependant, comme le mutex est relativement simple et efficace, cette conception est toujours utilisée lorsque l'exclusivité des ressources doit être garantie.

11. La conception du système d'exploitation peut se résumer à trois points :

(1) Sous forme de multi-processus, plusieurs tâches peuvent s'exécuter en même temps ;

(2) Sous forme de multi-thread, une seule tâche peut être divisée en différentes parties à exécuter

(3) Fournir un mécanisme de coordination pour éviter les conflits entre les processus et ; les threads d'une part, et autorisent les conflits entre les processus et les threads, d'autre part, partagent des ressources entre eux.

La principale différence entre les processus et les threads est qu'il s'agit de manières différentes de gérer les ressources du système d'exploitation. Le processus dispose d'un espace d'adressage indépendant. Après le crash d'un processus, cela n'affectera pas les autres processus en mode protégé, et les threads ne sont que des chemins d'exécution différents dans un processus.

Les threads ont leurs propres piles et variables locales, mais il n'y a pas d'espace d'adressage séparé entre les threads. La mort d'un thread signifie la mort de l'ensemble du processus, donc les programmes multi-processus sont plus robustes que les programmes multi-thread. programmes, mais lors du changement de processus, plus de ressources sont consommées et l'efficacité est moindre.

Mais pour certaines opérations simultanées qui nécessitent le fonctionnement et le partage simultanés de certaines variables, seuls les threads, et non les processus, peuvent être utilisés.

Pour plus de connaissances sur la programmation, veuillez visiter : Vidéo de 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:
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