検索

ホームページ  >  に質問  >  本文

Node.js の http.ServerResponse オブジェクトの write メソッドが同期しているのはなぜですか?

リーリー

最後の 2 行は 1 と 5 です。
http.ServerResponseオブジェクトはstream.Writable(書き込み可能なストリーム)を実装していると本に書いてあります。ただし、書き込み可能なストリームは一般に非同期 (fs 書き込みストリーム、zlib ストリーム、サブプロセスの stdin など) であり、イベント駆動型サービス モデルに最適です。ここで私がテストしたのは res.write 同期です。これは、イベント キュー内の次のコールバックを実行する前に、このコールバックを実行する必要があることを意味します。
function(req,res) は ruquest イベントのコールバックです。つまり、数万の同時リクエストを処理する場合、たとえfunction(req,res) に CPU がありません 集中的なアプリケーションが積み重なると、ユーザー アクセスに遅延が生じることを意味しませんか?しかし、ノードは集中的な IO の処理に非常に優れています?私の考えが間違っていたでしょうか?

js はシングルスレッドであり、CPU を集中的に使用するビジネスの処理が苦手なため、この show 関数を意図的に作成しました。そのため、 res.write(show() '' c) の方が時間がかかり、見栄えが良くなります。 write asynchronous? if res.write が非同期の場合、c=a b が最初に実行されます; then c は 5 でなければなりません;

给我你的怀抱给我你的怀抱2766日前689

全員に返信(3)返信します

  • 伊谢尔伦

    伊谢尔伦2017-05-31 10:40:35

    ノードの利点は、高い同時実行性を処理でき、大量のリクエストを処理できることですが、response.write の処理やデータベースのクエリの操作は、レストランと同じように、シェフとウェイターがいる別のスレッドによって処理されます。 (シングルスレッド)、1人のシェフとパートタイムのウェイターしかいない一般的なWebサービスフレームワークとは異なり、
    つまり、上記の状況は集中的なIOではありませんが、レストランのシェフが忙しすぎて料理を扱うことができないため、ウェイターはゆっくりと料理を提供します。

    返事
    0
  • 滿天的星座

    滿天的星座2017-05-31 10:40:35

    明らかに実行show()时,还没有开始执行write()なので、テスト方法自体が間違っています。

    返事
    0
  • 滿天的星座

    滿天的星座2017-05-31 10:40:35

    writeデータを内部バッファに書き込んで戻るだけなので、データを送信してから戻るわけではないので、CPU時間はほとんどかかりません

    返事
    0
  • キャンセル返事