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