Heim  >  Artikel  >  Web-Frontend  >  Hat Javascript mehrere Threads?

Hat Javascript mehrere Threads?

WBOY
WBOYOriginal
2022-06-15 16:15:113406Durchsuche

Es gibt kein Multithreading in JavaScript; JavaScript kann nur sequentiell in einem Thread ausgeführt werden, daher ist der JavaScript-Interpreter im Browser Single-Threading und unterstützt kein Multithreading, selbst wenn JavaScript mehrere Kerne hat; Es führt Aufgaben in einem einzelnen Thread aus, dem sogenannten Hauptthread. Sein Hauptzweck besteht darin, mit dem Benutzer zu interagieren und das DOM zu manipulieren. Wenn es sich nicht um einen Single-Thread handelt, führt dies zu sehr komplizierten Synchronisierungsproblemen.

Hat Javascript mehrere Threads?

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

Ist Javascript Multithreading?

Javascript verfügt nicht über Multithreading, JavaScript ist Singlethreading.

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.

Ein Thread ist im Grunde ein einzelner Prozess, den ein Programm verwenden kann, um eine Aufgabe abzuschließen. Jeder Thread kann jeweils nur eine Aufgabe ausführen:

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

Jede Aufgabe wird nacheinander ausgeführt; eine Aufgabe muss abgeschlossen sein, bevor die nächste beginnen kann.

Wie bereits erwähnt, verfügen viele Computer mittlerweile über mehrere Kerne und können daher mehrere Vorgänge gleichzeitig ausführen. Programmiersprachen, die mehrere Threads unterstützen können, können mehrere Kerne verwenden, um mehrere Aufgaben gleichzeitig auszuführen:

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

Traditionell ist JavaScript Single-Threaded. Selbst mit mehreren Kernen können Sie Aufgaben nur in einem einzigen Thread, dem sogenannten Hauptthread, ausführen lassen. Unser obiges Beispiel läuft so ab:

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

Ist js multithreaded? Es besteht kein Zweifel, dass js selbst nur in einem einzelnen Thread ausgeführt werden kann, daher wird es unten nicht analysiert:

Browser Es wird mindestens drei Threads geben: JS-Engine-Thread (Verarbeitung von JS), GUI-Rendering-Thread (Seiten-Rendering), Browser-Zeit-Trigger-Thread (Kontrollinteraktion)

Weil js Dom-Elemente bedienen kann, was sich auf die Rendering-Ergebnisse von GUI auswirkt Daher schließen sich der JS-Engine-Thread und der GUI-Rendering-Thread gegenseitig aus. Dies bedeutet, dass der GUI-Rendering-Thread eingefroren ist, wenn sich der JS-Engine-Thread im Arbeitszustand befindet.

Die js-Engine ist ereignisgesteuert und verwendet einen Single-Threaded-Laufmechanismus, das heißt, die js-Engine übernimmt nur nacheinander Aufgaben aus der Aufgabenliste und führt sie aus.

【Verwandte Empfehlungen: Javascript-Video-Tutorial, Web-Frontend

Das obige ist der detaillierte Inhalt vonHat Javascript mehrere Threads?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Stellungnahme:
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