Heim  >  Artikel  >  Web-Frontend  >  Kann der Knoten Multithreading aktivieren?

Kann der Knoten Multithreading aktivieren?

WBOY
WBOYOriginal
2022-06-15 17:06:372949Durchsuche

Node kann Multithreading aktivieren; Sie können das mit Node gelieferte Modul „child_process“ verwenden, um Multithreading zu aktivieren. Die Syntax lautet „child_process.fork(modulePath[, args][, options])“; So erstellen Sie exec und execFile: Es gibt vier Arten von untergeordneten Prozessen: , spawn und fork.

Kann der Knoten Multithreading aktivieren?

Die Betriebsumgebung dieses Tutorials: Windows 10-System, NodeJS-Version 12.19.0, Dell G3-Computer.

Kann der Knoten Multithreading aktivieren?

Wir alle wissen, dass Node.js im Single-Thread-Modus ausgeführt wird, aber es basiert auf ereignisgesteuert, nicht- Das blockierende E/A-Modell nutzt die vom Betriebssystem bereitgestellten asynchronen E/A zur Durchführung von Multitasking vollständig aus und eignet sich aufgrund der Asynchronität für E/A-intensive Anwendungsszenarien Das Programm muss nicht blockieren und auf die Rückgabe des Ergebnisses warten child_process-Modul, das mit Node geliefert wird

child_process.fork(modulePath[, args][, options])

Leiten Sie einen neuen Node.js-Prozess ab und verwenden Sie den etablierten IPC-Kommunikationskanal (er ermöglicht das Senden von Nachrichten zwischen übergeordneten und untergeordneten Prozessen), indem Sie das angegebene Modul aufrufen

cluster

Das Cluster-Modul kann problemlos untergeordnete Elemente erstellen Prozesse, die den Server-Port gemeinsam nutzen. Der Arbeitsprozess wird mit der Methode child_process.fork() erzeugt.

Mit Multi-Process

ExpressErstellen Sie drei neue Dateien: server.js (Express-Dienst) und cluster.js (multi -threaded-Dienstdatei) extensionServer.js (Express-Unterdienst)

Die folgenden Vorgänge stellen sicher, dass Express installiert ist

Kann der Knoten Multithreading aktivieren?

npm intsall express --seve-dev

extensionServer.js Verwenden Sie Express, um Unterdienste zu erstellen

const express = require("express"), //Express框架
app = express();

// api 先关接口
app.all('/userinfo', (req, res) => {
  res.json({ name: '自夏', msg: '我在自夏 selfsummer' })
})

app.listen(4000, () => {
 console.log(`子服务启动成功`);
})

Serve.js Erstellen Sie zunächst den Express-Multithread-Dienst

cluster.js Ändern Sie den Express-Dienst in einen Cluster.

Verwenden Sie das Cluster-Cluster-Modul, um Multithreading zu aktivieren

Besuchen Sie die Back-Schnittstelle zweimal (ein Browser-Zugriff, ein Postman-Zugriff).

Warum gibt es mehrere? Die aktuelle Dienstprozess-ID lautet xxx. Es sollte ein Cluster-Modul sein wird unter dem aktuellen Hauptprozess erzeugt, und jeder Unterprozess ist ein neuer Prozess, der von allen

des Hauptprozesses abgeleitet ist. Jeder Prozess verfügt über eine eigene V8-Instanz und einen eigenen Speicher sind begrenzt. Es wird nicht empfohlen, zu viele untergeordnete Prozesse zu erzeugen. Dies hängt von den *

CPU-Kernanzahl*-Einstellungen ab. Wir haben zuvor beurteilt, ob es einen Hauptprozess gibt Cluster-Modul, um den untergeordneten Prozess zu öffnen.

Wenn nicht, starten Sie den Prozess. Thread-Servicedatei) Kann der Knoten Multithreading aktivieren?

Empfohlenes Lernen: „

nodejs-Video-Tutorial

Das obige ist der detaillierte Inhalt vonKann der Knoten Multithreading aktivieren?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Stellungnahme:
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