Multithreading Node JS是否限制每个打开的HTTP连接只能有一个线程?

Multithreading Node JS是否限制每个打开的HTTP连接只能有一个线程?,multithreading,node.js,Multithreading,Node.js,Node JS可以在一个HTTP端口上有多个线程为HTTP客户端服务吗?这是为了处理一些线程正在等待数据库或执行一些繁重处理的情况。这不应该干扰其他线程的快速操作,比如加载图像。节点不会等待数据库,这就是重点。节点是非阻塞的、事件驱动的。它设置了一个回调,并继续循环,为下一个请求做好准备。它不只是坐在那里,等待数据库返回请求的信息。Node.js使用一个,所有被阻止的都使用(请参见幻灯片63)。不过,你也不必担心这一点。您应该只提供对异步操作的回调。当操作完成时调用它 以以下代码段为例: fun

Node JS可以在一个HTTP端口上有多个线程为HTTP客户端服务吗?这是为了处理一些线程正在等待数据库或执行一些繁重处理的情况。这不应该干扰其他线程的快速操作,比如加载图像。

节点不会等待数据库,这就是重点。节点是非阻塞的、事件驱动的。它设置了一个回调,并继续循环,为下一个请求做好准备。它不只是坐在那里,等待数据库返回请求的信息。

Node.js使用一个,所有被阻止的都使用(请参见幻灯片63)。不过,你也不必担心这一点。您应该只提供对异步操作的回调。当操作完成时调用它

以以下代码段为例:

function(channel,message)
例如是在事件发生时调用的回调函数之一

function (channel, message) {
    console.log("client1 channel " + channel + ": " + message);
    msg_count += 1;
    if (msg_count === 3) {
        client1.unsubscribe();
        client1.end();
        client2.end();
    }
}

如果您想让多个工作进程在同一端口上侦听(如果您有多个内核,这一点最有用),请查看。文档中的示例:

var cluster = require('cluster');
var http = require('http');
var numCPUs = require('os').cpus().length;

if (cluster.isMaster) {
  // Fork workers.
  for (var i = 0; i < numCPUs; i++) {
    cluster.fork();
  }

  cluster.on('exit', function(worker, code, signal) {
    console.log('worker ' + worker.process.pid + ' died');
  });
} else {
  // Workers can share any TCP connection
  // In this case its a HTTP server
  http.createServer(function(req, res) {
    res.writeHead(200);
    res.end("hello world\n");
  }).listen(8000);
}
var cluster=require('cluster');
var http=require('http');
var numpus=require('os').cpus().length;
if(cluster.isMaster){
//叉工。
对于(变量i=0;i
var cluster = require('cluster');
var http = require('http');
var numCPUs = require('os').cpus().length;

if (cluster.isMaster) {
  // Fork workers.
  for (var i = 0; i < numCPUs; i++) {
    cluster.fork();
  }

  cluster.on('exit', function(worker, code, signal) {
    console.log('worker ' + worker.process.pid + ' died');
  });
} else {
  // Workers can share any TCP connection
  // In this case its a HTTP server
  http.createServer(function(req, res) {
    res.writeHead(200);
    res.end("hello world\n");
  }).listen(8000);
}