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.
Die Betriebsumgebung dieses Tutorials: Windows 10-System, JavaScript-Version 1.8.5, Dell G3-Computer.
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!