前提シングルコアCPU配下にノードプログラムがインストールされています。プログラムは非常にシンプルです。httpサーバーです。リクエストが来ると、5秒遅れで結果が返されます( 5秒で行われることがわかります同期問題)
3 つのリクエストが同時に受信された場合、結果は次のようになります:
シナリオ 1: 最初のリクエストは 5 秒後に結果を取得し、2 番目と 3 番目のリクエストは 10 秒と 15 秒後に結果を取得します
シナリオ 2: すべてのリクエストは 5 秒後に結果を取得します
Java Tomcat に変更したら、どのようなシナリオになりますか? 皆さん、ありがとう!
場合は 5 秒遅延し、node.js はクラスターやその他の最適化を追加せずに単純なシングルスレッド操作です
したがって、複数のリクエストが同時に開始された場合、シナリオ 1同步的
リーリー: リーリー
同步等待 5 秒
結果は当然场景2
Java に関しては、マルチスレッドによって同時実行がサポートされており、パフォーマンスが十分である場合、たとえば同時実行が 3 のみである場合、シナリオ 2 と見なすことができます。もちろん、スレッドのオーバーヘッドが関係するため、同時実行性が増加すると、そのメモリ使用量は、node.js モデルをはるかに超えます実際、これが、node.js が IO 集中型で低コンピューティングのシナリオに適していると言われる理由です。私の他の回答を参照してください