Heim > Web-Frontend > js-Tutorial > Hauptteil

Detaillierte Erläuterung der JavaScript-Implementierung von Threads und Ereignisschleifen

韦小宝
Freigeben: 2018-03-14 16:08:19
Original
1289 Leute haben es durchsucht

In diesem Artikel geht es um die Javascript-Implementierung von Threads und Ereignisschleifen. Wenn Sie nicht wissen, wie Javascript Threads und Ereignisschleifen implementiert, oder wenn Sie sich für die Implementierung von Threads und Ereignisschleifen durch Javascript interessieren, schauen wir uns Folgendes an Schauen wir mal. Lassen Sie uns den Unsinn auf den Punkt bringen.

1 Warum soll JavaScript Single-Threaded sein?

Die verschiedenen Threads, die am Browser-Rendering-Prozess beteiligt sind, sind: JavaScript-Ausführungsthread, verantwortlich für die Ausführung von JS-Code, UI-Thread, verantwortlich für die UI-Anzeige, JavaScript-Ereignis Schleifenthread, Verwaltung

verwaltet JavaScript-Ereignisse, bei denen sich der JavaScript-Ausführungsthread und der UI-Thread gegenseitig ausschließen. Wenn JavaScript multithreaded ist, dann Wann Mehrere JavaScript-Ausführungsthreads betreiben dasselbe DOM, z. B. indem sie eine Schaltfläche rot bzw. gelb schalten. Wer sollte diese Situation in JavaScript vermeiden? 🎜> Threads müssen separat ausgeführt werden, daher ist JavaScript zum Kernmerkmal dieser Sprache geworden und wird sich in Zukunft nicht mehr ändern.

2. JavaScript-AufgabenWarteschlange

Struktur und Ereignisschleife

Einzelner Thread bedeutet, alle Aufgaben müssen in die Warteschlange gestellt werden und die nächste Aufgabe wird erst ausgeführt, wenn die vorherige Aufgabe abgeschlossen ist. Wenn die vorherige Aufgabe lange dauert, muss die nächste Aufgabe warten

.

Ausführungsaufgaben in JavaScript werden gemäß der Warteschlangendatenstruktur ausgeführt, wie unten gezeigt:

Aufgaben in JavaScript:


1. Synchronisierungsaufgaben:

for-Schleife, Summierung, js-Zuweisung, js-Operation usw.

2. Asynchrone Aufgaben: Dom-Ereignisse, BOM-API-Verarbeitung Ajax

Die sogenannte „Callback-Funktion“ (Callback) ist der Code, der vom Hauptthread aufgehängt wird. Asynchrone Aufgaben müssen eine Rückruffunktion angeben. Wenn der Hauptthread mit der Ausführung einer asynchronen Aufgabe beginnt, führt

die entsprechende Rückruffunktion aus. Schleifenmechanismus:

Der JavaScript-Hauptthread führt die synchrone Aufgabe direkt aus, die asynchrone Aufgabe führt zuerst einen Teil davon aus und wird dann beendet Der Hauptthread wird ausgeführt. Warten Sie dann, bis die asynchrone Aufgabe bereit ist, bevor Sie sie zur Ausführung an den Hauptthread übergeben.

Kurz gesagt, der JavaScript-Code wird einzeln in Form einer Warteschlange ausgeführt. und es kann nur ein Teil des Codes gleichzeitig ausgeführt werden. Das Obige ist der gesamte Inhalt dieses Artikels. Wenn Sie es nicht gut verstehen, können Sie versuchen, einige Ereignisschleifen usw. zu schreiben. So wird es leicht zu meistern sein!

Verwandte Empfehlungen:



Den JavaScript-Ereignisschleifenmechanismus im Detail erklären – Vorlesung 1

Detaillierte Erläuterung des JavaScript-Ereignisschleifenmechanismus - Vorlesung 2

Detaillierte Erläuterung der Beispiele für JavaScript-Ereignisschleifenmechanismen

Das obige ist der detaillierte Inhalt vonDetaillierte Erläuterung der JavaScript-Implementierung von Threads und Ereignisschleifen. 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
Über uns Haftungsausschluss Sitemap
Chinesische PHP-Website:Online-PHP-Schulung für das Gemeinwohl,Helfen Sie PHP-Lernenden, sich schnell weiterzuentwickeln!