Maison  >  Article  >  interface Web  >  Javascript a-t-il plusieurs threads ?

Javascript a-t-il plusieurs threads ?

WBOY
WBOYoriginal
2022-06-15 16:15:113362parcourir

Il n'y a pas de multithreading dans JavaScript ; JavaScript ne peut être exécuté que de manière séquentielle dans un seul thread, donc l'interpréteur JavaScript du navigateur est monothread et ne prend pas en charge le multithreading, même si JavaScript a plusieurs cœurs, il ne peut le faire qu'avec plusieurs threads. Il exécute des tâches sur un seul thread appelé thread principal. Son objectif principal est d'interagir avec l'utilisateur et de manipuler le DOM. S'il n'est pas monothread, cela entraînera des problèmes de synchronisation très compliqués.

Javascript a-t-il plusieurs threads ?

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

Javascript est-il multithread ?

javascript n'a pas de multithread, JavaScript est monothread.

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.

Un fil de discussion est essentiellement un processus unique qu'un programme peut utiliser pour accomplir une tâche. Chaque thread ne peut exécuter qu'une seule tâche à la fois :

Task A --> Task B --> Task C

Chaque tâche s'exécutera séquentiellement ; une tâche doit être terminée avant que la suivante puisse commencer.

Comme mentionné précédemment, de nombreux ordinateurs possèdent désormais plusieurs cœurs et peuvent donc effectuer plusieurs opérations à la fois. Les langages de programmation qui peuvent prendre en charge plusieurs threads peuvent utiliser plusieurs cœurs pour effectuer plusieurs tâches simultanément :

Thread 1: Task A --> Task B
Thread 2: Task C --> Task D

Traditionnellement, JavaScript est monothread. Même avec plusieurs cœurs, vous ne pouvez lui faire exécuter des tâches que sur un seul thread appelé thread principal. Notre exemple ci-dessus fonctionne comme ceci :

Main thread: Render circles to canvas --> Display alert()

Js est-il multi-thread ? Il ne fait aucun doute que js lui-même ne peut s'exécuter que dans un seul thread, il ne prend donc pas en charge le multi-threading :

D'abord dans le. navigateur Il y aura au moins trois threads : le thread du moteur js (traitement js), le thread de rendu gui (rendu de la page), le thread de déclenchement du temps du navigateur (interaction de contrôle)

Parce que js peut faire fonctionner des éléments dom, ce qui affectera les résultats de rendu de l'interface graphique , donc le thread du moteur js et le thread de rendu de l'interface graphique s'excluent mutuellement, ce qui signifie que lorsque le thread du moteur js est en état de fonctionnement, le thread de rendu de l'interface graphique est gelé.

Le moteur js est piloté par les événements et adopte un mécanisme d'exécution à thread unique, c'est-à-dire que le moteur js ne prendra que séquentiellement les tâches de la liste des tâches et les exécutera.

【Recommandations associées : tutoriel vidéo javascript, front-end web

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