Maison  >  Article  >  interface Web  >  Quel fil est javascript

Quel fil est javascript

青灯夜游
青灯夜游original
2021-11-04 17:40:001614parcourir

javascript est à thread unique. En tant que langage de script de navigateur, l'objectif principal de JavaScript est d'interagir avec les utilisateurs et de faire fonctionner le DOM ; cela détermine qu'il ne peut être qu'un seul thread, sinon cela entraînera des problèmes de synchronisation très complexes.

Quel fil est javascript

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

Qu'est-ce que le fil JavaScript ? Pourquoi?

Une caractéristique majeure du langage JavaScript est qu'il est monothread, ce qui signifie qu'il ne peut faire qu'une seule chose à la fois. Alors pourquoi JavaScript ne peut-il pas avoir plusieurs threads ? Cela peut améliorer l’efficacité.

JavaScript est monothread, selon son objectif. En tant que langage de script de navigateur, l'objectif principal de JavaScript est d'interagir avec les utilisateurs et de manipuler le DOM. Cela détermine qu'il ne peut être qu'un seul thread, sinon cela entraînera des problèmes de synchronisation très complexes. Par exemple, supposons que JavaScript ait deux threads en même temps. Un thread ajoute du contenu à un certain nœud DOM et l'autre thread supprime le nœud. Dans ce cas, quel thread le navigateur doit-il utiliser ?

Ainsi, afin d'éviter toute complexité, JavaScript est monothread depuis sa naissance. Cela est devenu la fonctionnalité principale de ce langage et ne changera pas à l'avenir.
Afin de profiter de la puissance de calcul des processeurs multicœurs, HTML5 propose le standard Web Worker, qui permet aux scripts JavaScript de créer plusieurs threads, mais les threads enfants sont entièrement contrôlés par le thread principal et ne sont pas autorisés à fonctionner le DOM. Par conséquent, cette nouvelle norme ne modifie pas la nature monothread de JavaScript.

Processus et threads

1. Processus

Un processus fait référence à l'exécution d'un programme. Il occupe un espace mémoire unique. Vous pouvez visualiser le processus via le Gestionnaire des tâches de Windows (comme indiqué ci-dessous). Dans le même temps, le même système informatique permet à deux ou plusieurs processus d'être dans un état parallèle, ce qui est multi-processus. Par exemple, un ordinateur peut exécuter WeChat, QQ et divers navigateurs en même temps. Certains navigateurs s'exécutent en un seul processus, comme Firefox et l'ancienne version d'IE, et d'autres s'exécutent en plusieurs processus, comme Chrome et la nouvelle version d'IE.

2. Threads

Certains processus peuvent faire plus d'une chose en même temps, comme Word, qui peut effectuer la saisie, la vérification orthographique, l'impression et d'autres choses en même temps. Au sein d'un processus, si vous souhaitez effectuer plusieurs choses en même temps, vous devez exécuter plusieurs « sous-tâches » en même temps. Nous appelons ces « sous-tâches » dans les threads du processus.
Thread fait référence à l'unité de planification de base du CPU. Il s'agit d'un processus complet d'exécution de programme et d'une unité d'exécution indépendante au sein du processus. Le multithreading fait référence à l'exécution simultanée de plusieurs threads au sein d'un processus. Le navigateur fonctionne en multithread. Par exemple, vous pouvez utiliser un navigateur pour télécharger, écouter des chansons et regarder des vidéos en même temps. De plus, il faut savoir que Une fonctionnalité majeure du langage JavaScript est le monothread Afin d'utiliser la puissance de calcul des processeurs multicœurs, HTML5 propose le standard Web Worker, qui permet aux scripts JavaScript de créer plusieurs threads. , mais les threads enfants sont entièrement contrôlés par le thread principal et ne doivent pas manipuler le DOM. Par conséquent, cette nouvelle norme ne change pas la nature monothread de JavaScript.

Puisque chaque processus doit faire au moins une chose, un processus a au moins un thread. Bien entendu, un processus complexe comme Word peut avoir plusieurs threads, et plusieurs threads peuvent être exécutés en même temps. La méthode d'exécution du multi-thread est la même que celle de plusieurs processus. Le système d'exploitation bascule également rapidement entre plusieurs threads. permettant à chacun Les threads s'exécutent tous alternativement brièvement et semblent s'exécuter simultanément. Bien entendu, l’exécution véritable de plusieurs threads simultanément nécessite qu’un processeur multicœur soit possible.

3. Processus et threads

  • L'application doit s'exécuter sur un certain thread d'un certain processus
  • Il y a au moins un thread en cours d'exécution dans un processus : le thread principal, automatiquement créé après le démarrage du processus
  • Dans un processus Si plusieurs threads s'exécutent en même temps, alors le programme est multithread. L'espace mémoire d'un processus est partagé et chaque thread peut utiliser ces mémoires partagées.
  • Les données ne peuvent pas être partagées directement entre plusieurs processus
4. Les avantages et les inconvénients du monothreading et du multi-threading ?

Avantages du monothreading

 : La programmation séquentielle est simple et facile à comprendre

Inconvénients du monothread

 : Faible efficacité

Avantages du multi-threading

 : Peut améliorer efficacement l'utilisation du processeur

Inconvénients du multi-threading

:

Surcharge de création multi-thread
  • Commutation entre les threads
  • Question de blocage et de synchronisation des statuts
  • [Apprentissage recommandé :
Tutoriel avancé javascript

]

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