Ich benutze Nodejs für eine CPU-intensive Aufgabe, die im Grunde eine große Menge an Daten generiert und speichert sie in einer Datei. Ich streame die Daten in Ausgabedateien, wie sie für einen einzelnen Datentyp generiert werden.Nodejs Parallele Programmierung mit Threads
Ziel: Ich möchte diese Daten für mehrere Arten von Daten parallel, um die Aufgabe machen zur Erzeugung .Ohne jeder Prozess (meine Multi-Core-CPU, um seine beste Verwendung) einen eigenen Heap-Speicher mit .So mit der Bereitstellung von größerer Prozessspeicher und höhere Ausführungsgeschwindigkeit.
Ich plane Knoten fibers zu verwenden, die auch durch meteor js für seine eigene Callback verwendet wird handling.But Ich bin nicht sicher, ob dies zu erreichen, was ich will, wie in einem der video on meteor fibers by Chris Mather am Ende erwähnt, die schließlich alles Single-Threaded- und Node-Fasern verwalten die gleiche Single-Thread-Ereignisschleife, um ihre Funktionalität bereitzustellen.
So
Bedeutet dies, dass, wenn ich Knoten Fasern verwenden würde nicht ich meine Aufgabe in parallel laufen, also nicht meinen CPU-Kern nutzen?
Hat Knoten webworker-threads wird mir helfen bei der Erreichung der Funktionalität I desire.As auf Module Homepage erwähnt wird, die sagt, dass, Webworker Threads auf seperate/Parallel-CPU Prozess ausgeführt wird, so dass Multi-Threading in Echt Bereitstellung Sinn?
Als endende Frage, Bedeutet dies, dass node.js für solche CPU-intensive Aufgaben nicht ratsam ist?
Anmerkung: Ich mag nicht asynchrone Code Strukturierung Libs verwenden, die als Themen präsentiert werden, aber infact nur syntatical Zucker über denselben Asynchron-Code hinzufügen, da die Aufgaben bereits verwendet weitgehend CPU-Kapazität .I sind Asynchron-Fähigkeiten bis max.
// Update 1 (basierend auf Antwort für Cluster)
Leider habe ich zu erwähnen vergessen, aber Problem mit Clustern, die ich gegenüber:
Complex um die Menge zu Lastenausgleich der Arbeit habe ich in einer Weise, die sicherstellt, dass eine bestimmte Menge von parallelen Aufgaben vor bestimmten anderen Aufgaben ausgeführt wird.
Nicht sicher, ob Cluster wirklich tun, was ich will, die sich auf these lines on webworker-threads npm Homepage
Das „kann nicht die Ereignisschleife blockieren“ Problem ist inhärent Knoten des evented Modell. Unabhängig davon, wie viele Knotenprozesse Sie als Knoten-Cluster ausführen, werden die Probleme mit CPU-gebundenen Aufgaben nicht gelöst.
..... irgendein Licht auf, wie ..whouldfelp hilfreich sein würde.
Bitte schauen Sie sich die aktualisierte Frage an, die ich vergessen habe zu erwähnen ... – damitj07
Bedeutet das, dass es keine Bibliothek gibt, die multi-threaded Parallelität in Node..as im Vergleich zu anderen Technologien – damitj07
Es gibt, aber in vielen die Meinung der Leute, sie sind eine sehr schlechte Idee. JavaScript ist dafür nicht gedacht. – OrangeDog