Heim > Web-Frontend > js-Tutorial > Hauptteil

Was ist ein Thread in Javascript?

青灯夜游
Freigeben: 2021-11-04 17:40:30
Original
1631 Leute haben es durchsucht

Javascript ist Single-Threaded. Als Browser-Skriptsprache besteht der Hauptzweck von JavaScript darin, mit Benutzern zu interagieren und das DOM zu bedienen. Dies bedeutet, dass es nur Single-Threaded sein kann, da es sonst zu sehr komplexen Synchronisierungsproblemen kommt.

Was ist ein Thread in Javascript?

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

Was ist ein JavaScript-Thread? Warum?

Ein Hauptmerkmal der JavaScript-Sprache ist, dass sie Single-Threaded ist, was bedeutet, dass sie jeweils nur eine Sache ausführen kann. Warum kann JavaScript also nicht mehrere Threads haben? Dadurch kann die Effizienz verbessert werden.

JavaScript ist je nach Verwendungszweck Single-Threaded. 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 Inhalt zu einem bestimmten DOM-Knoten hinzu und der andere Thread löscht den Knoten. Welchen Thread sollte der Browser in diesem Fall verwenden?

Um Komplexität zu vermeiden, ist JavaScript seit seiner Geburt Single-Threaded. Dies ist zum Kernmerkmal dieser Sprache geworden und wird sich auch in Zukunft nicht ändern.
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 nicht ausgeführt werden das DOM. Daher ändert dieser neue Standard nichts an der Single-Threaded-Natur von JavaScript.

Prozesse und Threads

1. Prozess

Ein Prozess bezieht sich auf die Ausführung eines Programms. Sie können den Prozess über den Windows Task-Manager anzeigen. Gleichzeitig ermöglicht dasselbe Computersystem den parallelen Zustand von zwei oder mehr Prozessen, was einem Multiprozess entspricht. Auf einem Computer können beispielsweise WeChat, QQ und verschiedene Browser gleichzeitig ausgeführt werden. Einige Browser werden in einem einzigen Prozess ausgeführt, z. B. Firefox und die alte Version von IE, und andere werden in mehreren Prozessen ausgeführt, z. B. Chrome und die neue Version von IE.

2. Threads

Einige Prozesse können mehr als eine Sache gleichzeitig ausführen, z. B. Word, das gleichzeitig Eingabe, Rechtschreibprüfung, Drucken und andere Dinge ausführen kann. Wenn Sie innerhalb eines Prozesses mehrere Dinge gleichzeitig erledigen möchten, müssen Sie mehrere „Unteraufgaben“ gleichzeitig ausführen. Wir nennen diese „Unteraufgaben“ innerhalb der Prozess-Threads.


Thread bezieht sich auf die grundlegende Planungseinheit der CPU. Es handelt sich um einen vollständigen Prozess der Programmausführung und eine unabhängige Ausführungseinheit innerhalb des Prozesses. Unter Multithreading versteht man die gleichzeitige Ausführung mehrerer Threads innerhalb eines Prozesses. Der Browser läuft Multithreaded. Beispielsweise können Sie mit einem Browser gleichzeitig Songs herunterladen, anhören und Videos ansehen. Darüber hinaus müssen wir wissen, dass Ein Hauptmerkmal der JavaScript-Sprache Single-Thread ist Um die Rechenleistung von Multi-Core-CPUs zu nutzen, HTML5 schlägt den Web Worker-Standard vor, der es JavaScript-Skripten ermöglicht, mehrere Threads zu erstellen , aber die untergeordneten Threads werden vollständig vom Hauptthread gesteuert und dürfen das DOM nicht manipulieren. Daher ändert dieser neue Standard nichts an der Single-Threaded-Natur von JavaScript.
Da jeder Prozess mindestens eine Sache tun muss, hat ein Prozess mindestens einen Thread. Natürlich kann ein komplexer Prozess wie Word mehrere Threads haben und mehrere Threads können gleichzeitig ausgeführt werden. Die Ausführungsmethode des Multithreadings ist dieselbe wie bei mehreren Prozessen. Das Betriebssystem wechselt auch schnell zwischen mehreren Threads. Zulassen, dass die Threads alle abwechselnd kurz ausgeführt werden und scheinbar gleichzeitig ausgeführt werden. Um tatsächlich mehrere Threads gleichzeitig ausführen zu können, ist natürlich eine Multi-Core-CPU erforderlich.

3. Prozesse und Threads

Die Anwendung muss auf einem bestimmten Thread eines bestimmten Prozesses laufen
  • Es gibt mindestens einen laufenden Thread in einem Prozess: den Hauptthread, der automatisch erstellt wird, nachdem der Prozess gestartet wurde
  • Wenn in einem Prozess mehrere Threads gleichzeitig ausgeführt werden, handelt es sich um ein Multithread-Programm. Der Speicherplatz eines Prozesses wird gemeinsam genutzt und jeder Thread kann diese gemeinsam genutzten Speicher nutzen.
  • Daten zwischen mehreren Prozessen können nicht direkt geteilt werden
  • 4. Die Vor- und Nachteile von Single-Thread und Multi-Thread?

Vorteile von Single-Thread: Sequentielle Programmierung ist einfach und leicht zu verstehen

Single -threaded Nachteile: Geringe Effizienz

Vorteile von Multi-Threading: Kann die CPU-Auslastung effektiv verbessern

Nachteile von Multi-Threading:

Erstellung von Multi-Thread-Overhead

Switching-Overhead zwischen Threads
  • Deadlock und Frage zur Statussynchronisierung
  • [Lernempfehlung:
  • Javascript-Tutorial für Fortgeschrittene
  • ]

Das obige ist der detaillierte Inhalt vonWas ist ein Thread in Javascript?. 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