Heim > Web-Frontend > Front-End-Fragen und Antworten > Ist die Javascript-Engine Single-Threaded?

Ist die Javascript-Engine Single-Threaded?

WBOY
Freigeben: 2022-03-03 10:35:37
Original
1653 Leute haben es durchsucht

Die JavaScript-Engine ist Single-Threaded. Der Hauptzweck von JavaScript besteht darin, mit Benutzern zu interagieren und das DOM zu bedienen, um beispielsweise komplexe Synchronisierungsprobleme zu vermeiden, sodass JavaScript nur eine Sache gleichzeitig ausführen kann -gefädelt.

Ist die Javascript-Engine Single-Threaded?

Die Betriebsumgebung dieses Tutorials: Windows 10-System, JavaScript-Version 1.8.5, Dell G3-Computer.

Ist die JavaScript-Engine Single-Threaded?

Die JavaScript-Engine ist Single-Threaded.

Warum ist JS Single-Threaded? Warum ist Single-Threading erforderlich?

In ähnlicher Weise werden wir die Fragen anhand realer Szenarien beantworten

(1) Warum ist JS Single-Threaded?

Single-Threaded: Kann nur eine Sache gleichzeitig ausführen

JavaScript ist Single-Threaded und mit seinem Zweck verbunden. Als Browser-Skriptsprache besteht der Hauptzweck von JavaScript darin, mit Benutzern zu interagieren und das DOM zu manipulieren. Dies legt fest, dass es nur Single-Threaded sein kann, da es sonst zu sehr komplexen Synchronisationsproblemen kommt. Angenommen, JavaScript verfügt über zwei Threads gleichzeitig. Ein Thread fügt einem bestimmten DOM-Knoten Inhalte hinzu und der andere Thread löscht den Knoten. Welchen Thread sollte der Browser in diesem Fall verwenden?

Um die Rechenleistung von Multi-Core-CPUs zu nutzen, schlägt HTML5 den Web Worker-Standard vor, der es JavaScript-Skripten ermöglicht, mehrere Threads zu erstellen, die untergeordneten Threads werden jedoch vollständig vom Haupt-Thread gesteuert und dürfen das DOM nicht bedienen . Daher ändert dieser neue Standard nichts an der Single-Threaded-Natur von JavaScript.

JS wurde ursprünglich für die Verwendung in Browsern entwickelt. Stellen Sie sich also vor, JS im Browser wäre multithreaded.

Szenariobeschreibung:

Jetzt gibt es also zwei Prozesse, Prozess1 und Prozess2. Da es sich um einen JS mit mehreren Prozessen handelt, arbeiten sie gleichzeitig auf demselben Dom. Prozess1 hat den Dom gelöscht und Prozess2 hat den Dom bearbeitet Wie soll der Browser gleichzeitig zwei widersprüchliche Befehle ausführen?

Wenn Sie so darüber nachdenken, sollte es leicht zu verstehen sein, warum JS für Single-Threading konzipiert ist.

(2) Warum benötigt JS Asynchronität?

Szenenbeschreibung: Wenn es in JS keine Asynchronität gibt, kann es nur von oben nach unten ausgeführt werden. dann wird der folgende Code blockiert.

Für Benutzer bedeutet das Blockieren „steckengeblieben“, was zu einer schlechten Benutzererfahrung führt

Es gibt also eine asynchrone Ausführung in JS.

Verwandte Empfehlungen:

Javascript-Lern-Tutorial

Das obige ist der detaillierte Inhalt vonIst die Javascript-Engine Single-Threaded?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Verwandte Etiketten:
Quelle:php.cn
Erklärung dieser Website
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn
Beliebte Tutorials
Mehr>
Neueste Downloads
Mehr>
Web-Effekte
Quellcode der Website
Website-Materialien
Frontend-Vorlage