Asynchrone und synchrone Programmierung in Node.js verstehen
Beim Erkunden der NodeBeginner-Website sind Sie auf zwei unterschiedliche Codefragmente gestoßen, die Datenbankabfragen durchführen . Während das Ziel klar ist, bleibt der Unterschied zwischen synchroner und asynchroner Programmierung schwer zu fassen.
Synchronisierte Programmierung:
Im ersten Codeausschnitt:
var result = database.query("SELECT * FROM hugetable"); console.log("Hello World");
Dieser Code arbeitet synchron. Das Programm stoppt in der ersten Zeile und wartet auf den Abschluss der Abfrage. Folglich kann die nächste Zeile, die „Hello World“ ausgibt, erst ausgeführt werden, nachdem die Abfrage abgeschlossen ist.
Asynchrone Programmierung:
Im Gegensatz dazu das zweite Codefragment:
database.query("SELECT * FROM hugetable", function(rows) { var result = rows; }); console.log("Hello World");
Verwendet asynchrone Programmierung. Hier wird die Meldung „Hallo Welt“ sofort gedruckt, während gleichzeitig die Abfrageausführung ausgeführt wird. Die Rückruffunktion empfängt die Ergebnisse der Abfrage, sobald sie abgeschlossen ist.
Hauptunterschiede:
Der entscheidende Unterschied liegt im Blockierungsverhalten von synchronem Code. Die synchrone Programmierung stoppt die Ausführung anderer Codes, bis die Abfrage verarbeitet ist, während die asynchrone Programmierung die gleichzeitige Ausführung anderer Aufgaben ermöglicht, während auf Abfrageergebnisse gewartet wird.
Ausführungsablauf:
Ausführen der Erstens würde ein synchroner Codeausschnitt Folgendes ergeben:
Query finished Next line
Andererseits der asynchrone Code Das Snippet würde Folgendes ausgeben:
Next line Query finished
Veranschaulichung der nicht blockierenden Natur der asynchronen Programmierung.
Ereignisgesteuerte Asynchronität in Node.js:
Obwohl Node.js Single-Threaded ist, ermöglicht es aufgrund seiner ereignisgesteuerten Architektur asynchrone Vorgänge. Aufgaben wie Dateisystemoperationen werden in separaten Prozessen erledigt. Der Hauptknoten-Thread erhält Benachrichtigungen über diese Vorgänge, sodass er angemessen reagieren kann, ohne die Ausführung anderer Aufgaben zu blockieren.
Das obige ist der detaillierte Inhalt vonSynchron vs. Asynchron in Node.js: Wie unterscheiden sich Datenbankabfragen?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!