Node.js 单线程模型

Posted

技术标签:

【中文标题】Node.js 单线程模型【英文标题】:Node.js singler thread model [duplicate] 【发布时间】:2012-12-03 17:48:42 【问题描述】:

可能重复:node.js on multi-core machines

既然 node.js 使用的是单线程模型,那么 node.js 如何利用多核呢? 不使用多核,我觉得CPU的使用率是不够的,对吧?

【问题讨论】:

***.com/a/8685968 【参考方案1】:

你可以使用核心cluster模块

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);

【讨论】:

以上是关于Node.js 单线程模型的主要内容,如果未能解决你的问题,请参考以下文章

浅谈 Node.js 单线程模型

Node.js 单线程模型

单线程非阻塞 IO 模型如何在 Node.js 中工作

单线程高并发的运行时环境

异步编程如何在单线程编程模型中工作?

Node.js的进程管理