在 NodeJS 中使用 Web Worker 实现多线程真的有优势吗?

Would it be really an advantage to achieve multi-threading using web workers in NodeJS?

我觉得这个问题很明确。 JavaScript 是单线程的,NodeJS 仍然取得了令人难以置信的性能。我们可以认为 multi-threading 会进一步提升 NodeJS 性能,但在某些情况下可能是错误的。

例如,我目前正在使用 NextJS 构建 starter project。我想知道在单独的线程中处理每个请求是否值得。

谢谢!

据我所知在生产模式下 nodeJs "usually" 用作:

  • nginx 服务器(用作安全层和 HTTPS 代理)
  • 子NodeJs进程数(数量===核心数)

这意味着所有核心都被使用了,

请求由单核处理,

服务器一次处理多个请求

===更新===

如果你想将单个请求处理分成多个线程 - 那么请记住 cross-process NodeJS 中的通信是昂贵的,你需要将大量任务委托给其他 threads/webworkers

如果您认为需要将应用拆分为多个线程 - 考虑使用微服务架构,例如使用 http://senecajs.org/