如何';集群&x27;和';工作线程';在Node.js中工作?
我是否理解正确:如果我使用如何';集群&x27;和';工作线程';在Node.js中工作?,node.js,process,v8,core,clusterize,Node.js,Process,V8,Core,Clusterize,我是否理解正确:如果我使用clusterpackage,这是否意味着 是否为每个已创建的辅助进程创建一个新节点实例 集群和工作线程包之间有什么区别 实际上,您的不同之处在于基于进程与基于线程。线程共享内存(例如,SharedArrayBuffer),而进程不共享内存。本质上,它们绝对是同一件事 每个CPU上启动一个进程,并可通过进行通信 每个进程都有自己的内存和自己的节点(v8)实例。创建大量内存可能会导致内存问题 非常适合生成共享同一端口b/c的许多HTTP服务器。主进程将把请求多路传输到
cluster
package,这是否意味着
是否为每个已创建的辅助进程创建一个新节点实例
集群
和工作线程
包之间有什么区别实际上,您的不同之处在于基于进程与基于线程。线程共享内存(例如,
SharedArrayBuffer
),而进程不共享内存。本质上,它们绝对是同一件事
- 每个CPU上启动一个进程,并可通过进行通信
- 每个进程都有自己的内存和自己的节点(v8)实例。创建大量内存可能会导致内存问题
- 非常适合生成共享同一端口b/c的许多HTTP服务器。主进程将把请求多路传输到子进程
- 一道工序总计
- 创建多个线程,每个线程有一个节点实例(一个事件循环,一个JS引擎)。除少数线程外,大多数节点API可用于每个线程。所以本质上节点是嵌入自身并创建一个新线程
- 与其他线程共享内存(例如,
)SharedArrayBuffer
- 非常适合CPU密集型任务,如处理数据或访问文件系统。因为NodeJS是单线程的,所以同步任务可以通过worker变得更高效