Node.js单线程与否?

时间:2014-06-18 05:15:23

标签: javascript multithreading node.js

我在Node.js处理模型中读过该节点只是使用事件循环接受请求,并将工作交给正在执行异步操作的c ++工作线程。

我也读过:

  • 节点不是单线程的。
  • 在节点中,除了代码之外,所有内容都是并行的。
  • 在节点中,如果使用settimeout函数,则在此期间不会有任何工作。

我做了一些研究,但未能得出结论。我的问题是:

  • 如果节点正在使用c ++工作线程,你怎么能说它是单线程的呢?
  • 除了我们的代码之外,一切都是平行的?
  • settimeout事件是否属实?

1 个答案:

答案 0 :(得分:2)

Node.js naked在单个进程上运行,在单个线程上运行。

但是有一个webworker扩展允许运行多个线程:

https://www.npmjs.org/package/webworker-threads

要生成多个进程,请查看cluster module

(请在此处查看更新的教程:http://blog.carbonfive.com/2014/02/28/taking-advantage-of-multi-processor-environments-in-node-js/

还有关于该主题的最新答案:

What is Node.js?

https://stackoverflow.com/a/8685968/1060686