【发布时间】:2014-07-24 10:34:36
【问题描述】:
前段时间我开始学习 nodejs,很酷的一点是,无论开发人员编写什么,都可以在单个线程上运行。
但是当我做一个非阻塞的文件 I/O 或网络 I/O 时,一些线程必须等待响应,这是由底层 V8 架构完成的。
我们说 nodejs 进程在单核上运行,因为只允许 1 个线程,我们需要多个线程,然后 CPU 才能将它们调度到不同的核。
但是当我们说nodejs进程运行在单核上时,是不是意味着底层的V8 javascript引擎也运行在单核上呢?所有节点进程都使用相同的 V8 js 引擎实例,还是像对每个进程的单独支持一样?
之所以想到这些问题,是因为我想为 nodejs 进程创建集群,并且我想知道我是否可以在 n 核心机器上创建 n 集群,或者我是否应该将大量核心留给V8 引擎?
编辑:找到了一个链接,给出了一些答案http://blog.carbonfive.com/2014/02/28/taking-advantage-of-multi-processor-environments-in-node-js/
“这些子节点仍然是V8 的全新实例。假设每个新节点至少需要 30 毫秒的启动时间和 10 mb 内存。也就是说,您不能创建成千上万个。”
【问题讨论】:
标签: multithreading node.js nonblocking