2013-03-24 8 views
14

私は、スレッドベースのサーバーがHTTP要求を処理する方法と、イベントベースのサーバーがHTTP要求を処理する方法の違いを理解する助けになると考えています。サーバーが建物内の店舗であり、ポート80が店の正面玄関であり、httpリクエストが正面玄関を歩いたばかりの顧客であるとします。次は何が起こる?ショップはどのように顧客を扱いますか?どのように店が複数の顧客を扱うのですか?また、顧客が店を出る速さの点でどのような違いがありますか?スレッドベースのサーバーとイベントベースのサーバーの違いは何ですか?

要するに、「イベントループ」、「スレッド」、「ブロッキング」、「ノンブロッキング」などの説明は物理的な現実的な類推で探しています。

答えて

21

スレッドベースのサーバーの類推では、各顧客は、自分の店員によってサービスされます。顧客が離れると、店員は別の顧客を助けることができます。同時に助けられる従業員の数は、店舗の従業員の数に直接結びついています。

イベントベースのサーバーのアナロジーでは、1人の店員が複数の顧客にサービスを提供する場合があります。ボブは、(のように) "xのアイテムを裏の部屋に見つけよう"というような、さまざまな作業を他の店員に委譲しています()。ボブがヘルパーにヘルプを依頼すると、そのヘルパーは店のどこかに退却し、ボブは元の顧客がヘルパーがボブに戻ってくるのを待っている間に他の顧客を助けることができます。ヘルパーが復帰したら、Bobの現在の顧客との良好な停止地点に来るのを待ってから、Bobはヘルパーと元の顧客と再び話すことができます。

+0

ボブはイベントループと呼ばれるものですか? –

+0

まあまあ、正確ではありません。 –

関連する問題