Node.js 是单线程的,如何利用多核 CPU?cluster 和 worker_threads 有什么区别?

Node 主线程单线程,但可通过多进程/多线程利用多核:

import cluster from 'cluster'
import os from 'os'
if (cluster.isPrimary) {
  os.cpus().forEach(() => cluster.fork())
} else {
  // 每个 worker 启动同一份服务器代码
}

选择:I/O 密集首选 cluster;计算密集且需频繁传大数据用 worker_threads(避免进程间序列化成本)。

同分类其他题目