一度に複数のメソッドを実行するためのスレッドを作成する方法はありますか?
そうすれば、途中でいずれかのメソッドが失敗した場合、他のすべてのスレッドを強制終了する必要があります。
一度に複数のメソッドを実行するためのスレッドを作成する方法はありますか?
そうすれば、途中でいずれかのメソッドが失敗した場合、他のすべてのスレッドを強制終了する必要があります。
新しい回答: node.js にはネイティブでスレッドを使用する機能がありませんでしたが、この機能が追加されました。詳細については、 https://nodejs.org/api/worker_threads.htmlを参照してください。
古い答え: すべての node.js プロセスは、設計上シングル スレッドです。したがって、複数のスレッドを取得するには、複数のプロセスが必要です (他のポスターが指摘しているように、ノードでスレッドを操作する機能を提供するリンク可能なライブラリもありますが、それらのライブラリがなければそのような機能は存在しませんhttps://github.com/audreyt/node-webworker-threadsを参照している Shawn Vincent による回答を参照してください)
node.js ドキュメント ( http://nodejs.org/api/child_process.html ) に示されているように、メイン プロセスから子プロセスを開始できます 。このページの例は非常に優れており、非常に簡単です。
次に、親プロセスは、開始したプロセスの終了イベントを監視し、開始した他のプロセスを強制的に終了して、話しているワンフェイルオールストップ戦略のタイプを達成できます。
また、Node.js 内からネイティブ スレッドを実行するためのライブラリが少なくとも 1 つあります: node-webworker-threads
https://github.com/audreyt/node-webworker-threads
これは基本的に、node.js 用のWeb Worker ブラウザー APIを実装します。
Rx を使用している場合、rxjs-cluster にプラグインして作業を並列実行に分割するのはかなり簡単です。(免責事項:私は著者です)
プロジェクトのステータスについてはわかりませんが、https://github.com/xk/node-threads-a-gogoもあります。
NodeJS にはスレッドが含まれるようになりました (回答時の実験的機能として)。
あなたが探しているかもしれないPromise.race
(スレッドではなく、ネイティブの I/O レーシング ソリューション)
あなた(またはこの質問を検索している他の人)がスレッドを競合させて障害を回避し、I / O操作のコストを回避したいと仮定すると、これはそれを達成するためのシンプルでネイティブな方法です(スレッドを使用しません)。ノードはシングル スレッド (イベント ループを参照) になるように設計されているため、可能であればスレッドの使用を避けてください。私の仮定が正しければ、(リンクの例)で使用Promise.race
することをお勧めします。setTimeout
この戦略では、それぞれが何らかの I/O 操作を試行し、エラーが発生した場合 (そうでない場合はタイムアウト) に Promise を拒否する Promise のリストを競合させます。ステートメントは、最初の解決/拒否のPromise.race
後に続きます。これは、あなたが望んでいるようです. これが誰かを助けることを願っています!