Maison >interface Web >Questions et réponses frontales >Le langage JavaScript prend-il en charge le multi-threading ?

Le langage JavaScript prend-il en charge le multi-threading ?

青灯夜游
青灯夜游original
2021-04-01 16:54:352908parcourir

Le langage JavaScript ne prend pas en charge le multithread car l'interpréteur JavaScript du navigateur est monothread. JavaScript a été conçu à l'origine pour être utilisé dans les navigateurs. Son objectif principal est d'interagir avec les utilisateurs et de faire fonctionner le DOM, ce qui détermine qu'il ne peut être qu'un seul thread, sinon cela entraînera des problèmes de synchronisation très complexes.

Le langage JavaScript prend-il en charge le multi-threading ?

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

Le langage JavaScript ne prend pas en charge le multithread car l'interpréteur JavaScript du navigateur est monothread.

Le fil de discussion unique de JavaScript est lié à son objectif. JavaScript a été conçu à l'origine pour être utilisé dans les navigateurs. 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, ce qui 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 CPU 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 à exploiter le DOM. Par conséquent, cette nouvelle norme ne modifie pas la nature monothread de JavaScript.

Apprentissage recommandé : Tutoriel de base js

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