Frage

Wenn Sie eine E / A-intensiver Task in Node.js ausführen, wie ein Async-Datenbankbetrieb, mit Node-Fasern , blockiert es?

Ich habe NODE-Fasern noch nicht benutzt. B / C Es scheint, dass - wenn der Code verwendet wird, der eine HTTP-Anforderung verarbeitet, in der ein langer normal nicht blockierender E / A-Code ausgeführt wird - es ist jetzt verhindernAndere Anfragen vom Zugriff auf Ihre App.Ist das wahr oder nicht?Ein kleines Detail darüber, warum es wahr / falsch ist, wäre auch sehr hilfreich.

War es hilfreich?

Lösung

Fasern Erlauben Sie dem Programmiergerät "Thread-artige" Blocking-Anweisung JavaScript-Code.Die Implementierung ist jedoch nicht blockierend, der Code entspricht dem Node.js Async-Ereigniscode.Die Implementierung der LAVERDETS pausiert die Faserausführung irgendwann, genauso wie das async node.js-Modell und kann zu einem späteren Zeitpunkt wieder aufgenommen werden.

Fasern sind eher syntaktischer Zucker, sie ändern das Node.js Async-Modell nicht.Der einzige Unterschied besteht darin, dass Fasern unterschiedliche Ausführungsstapel erstellen (wenn ich korrekt bin), der ein leichter Overhead für den normalen Nodejs-Async-Code ist.

Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top