4

私は非同期モジュールの各メソッド(https://github.com/caolan/async#each)に従っています。これは、メソッドが配列を並列に反復することを示しています。「Parallery」は私を混乱させる言葉です。AFAIK、今ではJavaScriptはシングルスレッドモデルを持っているため、コードを並列に実行できます。

各メソッドに示されている例は、IOシナリオに焦点を当てています。配列の番号を追加するためだけに「each」メソッドを使用しています。並列処理が存在する場合、私の例を使用してこれを証明できますか?

読んでくれてありがとう。

4

2 に答える 2

3

非同期ドキュメントの「並列」は、並行性(複数のプロセスまたはスレッドが同時に実行されているなど)の観点から「並列」を指していませんが、各ステップが他のステップから独立しているという点で「並列」を指します(反対の操作はeachSeries、前のステップが終了した後にのみ各ステップが実行される場合です)。

並列バージョンは、ステップが何らかのI / Oを実行する場合にのみ意味があります。これは、(ノードの非同期性のために)互いに並列に実行できます。1つのステップがI / Oを待機する必要がある場合、他のステップは問題なく続行できます。データを送受信します。

ステップが主にCPUにバインドされている場合(つまり、多くの計算を実行している場合)、あなたが言うように、Nodeは単一のスレッドでインタープリターを実行しますが、それは変更されないため、パフォーマンスは向上しませんasync

于 2013-03-26T20:43:05.283 に答える
1

robertklepが言ったように、それは並列ではなく並行です。重いコードの計算を並行して実行しても、パフォーマンスが大幅に向上することはありません。並列I/Oを実行する必要がある場合(たとえば、配列のすべての項目について外部Webサービスと通信する場合)に役立ちます。

于 2013-03-26T13:02:52.483 に答える