在NodeJS中使用Web worker实现多线程是否真的有优势?

时间:2018-03-11 16:29:44

标签: node.js multithreading performance web-worker single-threaded

我认为这个问题很明确。 JavaScript是单线程的,NodeJS仍然可以实现令人难以置信的性能。我们可以明显地认为multi-threading会进一步提高NodeJS的性能,但在某些情况下可能会出错。

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

谢谢!

1 个答案:

答案 0 :(得分:1)

据我所知,在生产模式中,nodeJs“通常”用作:

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

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

请求由单核处理,

服务器一次处理多个请求

=== UPDATE ===

如果您想将单个请求处理划分为多个线程 - 那么请记住,NodeJS中的跨进程通信非常昂贵,并且您需要将巨大的任务委派给其他线程/ Webworkers

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