Heim > Web-Frontend > js-Tutorial > Hauptteil

Javascript ist NICHT Single-Threaded!!

王林
Freigeben: 2024-07-23 11:57:20
Original
516 人浏览过

NEIN! Sie haben nicht falsch gelernt, dass JavaScript eine Single-Threaded-Sprache ist. Es handelt sich um eine Single-Thread-Sprache, die Zugriff auf einen einzelnen Haupt-Thread hat, um den Code auszuführen. Wenn wir also über synchrone Programmierung sprechen, sprechen wir davon, dass dieser einzelne Thread die ganze schwere Arbeit übernimmt und unseren Code ausführt.
Image description

Aber in Wirklichkeit verwenden die V8-Engine und Node.js eine C-Bibliothek namens libuv, um Zugriff auf sechs zusätzliche Threads zu erhalten. Zwei davon werden für die Speicherbereinigung verwendet und der Rest wird für Hintergrundaufgaben wie asynchrone Programmierung verwendet.

Ja. Wenn wir sagen, dass Code asynchron oder nicht blockierend ist, passiert in Wirklichkeit, dass der asynchrone Code mit dem Rückruf an diese zusätzlichen Threads übergeben wird und der Hauptthread seine Arbeit fortsetzt, ohne den Rest des Codes zu blockieren.

Javascript is NOT single threaded!!
Wenn der asynchrone Code fertig ist, wird die Rückruffunktion entweder mit einem Fehler oder den erforderlichen Daten in die Ereigniswarteschlange verschoben. Dann schiebt die Ereignisschleife es in den Aufrufstapel und wir bekommen unser Ergebnis, um dies mit etwas Code zu verstehen. Schauen wir uns die Readfile-Methode des FS-Moduls an.

fs.readFile("demo.text","utf8",(err,data)=>{
    if(error){       
        return error
    }
    console.log("output",data);
})
Nach dem Login kopieren

Im obigen Code wird die Readfile-Methode an die Hintergrundthreads übergeben. Das Lesen erfolgt im Hintergrund, und wenn dies abgeschlossen ist, wird der Rückruf entweder mit einem Fehler oder mit Daten in die Ereigniswarteschlange verschoben.

Javascript is NOT single threaded!!

Einmal im Callstack wird der Callback ausgeführt und wir erhalten entweder einen Fehler oder die Daten als Ausgabe.
Vielen Dank fürs Lesen. Ich hoffe, ich konnte die Single-Threaded-Mittel in Javascript erklären.

以上是Javascript ist NICHT Single-Threaded!!的详细内容。更多信息请关注PHP中文网其他相关文章!

Quelle:dev.to
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!