worker threads和clusters的区别。
工作线程(worker threads)
- 有多个线程的进程总共只有一个。
- 每个线程都有一个Node实例(一个事件循环,一个JS引擎),大多数api都可以访问。
- 与其他线程共享内存(例如SharedArrayBuffer)。
- 可用于cpu密集型任务,如处理数据或访问文件系统,因为NodeJS是单线程的,同步任务能够更有效地利用工作线程。
集群(clusters)
- 每个CPU上有一个进程和一个IPC进行通信。
- 如果我们想让多个服务器通过单个端口接受HTTP请求,集群可能会很有用。
- 在每个CPU中产生的进程将有单独的内存和节点实例,这将进一步导致内存问题。