NodeJS:asynchronous模块的并行性

我正在按照asynchronous模块的每个方法( https://github.com/caolan/async#each )。 它说该方法并行迭代数组。 “ 平行 ”是混淆了我的词。 AFAIK,现在JavaScript可以并行执行代码,因为它有一个单线程模型。

每种方法中显示的示例都着重于IOscheme。 我正在使用“每个”方法只是添加数组的数字。 如果存在并行性,我可以用我的例子来certificate吗?

谢谢阅读。

asynchronous文档中的“并行”并不是指在并发性方面的“并行”(如同时运行多个进程或线程),而是在每一步独立于其他步骤的“并行”相反的操作将是eachSeries ,每个步骤只有在前一个完成后才运行)。

并行版本只有在这些步骤执行某种types的I / O(由于Node的asynchronous特性)可以并行运行时才有意义:如果一个步骤需要等待I / O,其他步骤可以继续发送/接收数据。

如果这些步骤主要是cpu绑定的(也就是执行大量的计算),那么它不会为您提供更好的性能,因为像您说的那样,Node会在单个线程中运行解释器,而不是async更改。

就像robertklep说的那样,它更多的是并行而不是并行。 通过并行执行计算大量代码,您不会获得更多的性能收益。 当您必须执行并行I / O(例如,与数组的所有项目的外部Web服务进行通信)时,此function非常有用。