トルネードは「Pythonで記述された比較的単純な、ノンブロッキングWebサーバーフレームワーク」です。

StackOverflow https://stackoverflow.com/questions/1419624

  •  07-07-2019
  •  | 
  •  

質問

これはおそらく愚かな質問ですが、「ノンブロッキングWebサーバー」とは正確には何ですか?すべてのWebサーバーは技術的に非ブロッキングです。それ以外の場合、同時接続をどのように処理できますか? Apache2は、fork()とpthreadの組み合わせを使用してこれを実現します。 Tornado(およびTwisted)もどの程度正確に違いますか?ソケットの束を非ボッキングモードに設定し、FDリスト(または同等のもの)を作成し、1つの大きなselect()sys呼び出しでループしますか?

これらのようなフレームワークはどこで使用しますか?また、Apache2(または他の一般的なサーバー)に対してどのような利点がありますか?ありがとう

役に立ちましたか?

解決

この EventMachineの記事ヒントが得られることもあります:

  

フォークの伝統に染み込んだ/   スレッドWebサーバー   のいずれかに参加したときにかなり驚いた   大学の研究プロジェクト   数年前のウォータールー:私たち   異なるウェブサーバーのベンチマークを行っていました   アーキテクチャ、およびトップパフォーマーは   すべてのイベント駆動型サーバー。

     

質問をみんなにせがんだので、   私はすぐにその理由を理解しました-で   数十万の環境   フォークとコンテキストを要求します   スレッドに関連付けられた切り替え   管理が法外になります   高価です(フォークは、   親でメモリコピーを行います   毎回処理します)。一方、   比較、タイトで非常に   最適化されたイベントループは本当に輝いています   性能に関しては   重い負荷。

ライセンス: CC-BY-SA帰属
所属していません StackOverflow
scroll top