6

イベント駆動型プログラミングとは何ですか?イベント駆動型プログラミングはスレッド化と関係がありますか?サーバーと、サーバーがユーザーリクエストを処理し、データを管理する方法について読んで、この質問に行き着きました。ユーザーがリクエストを送信すると、サーバーはデータの処理を開始し、状態をテーブルに書き込みます。どうしてこんなことに?サーバーはそのユーザーのデータの処理を停止し、別のユーザーのデータの処理を開始しますか、それともすべてのユーザーの処理が別のスレッド(マルチスレッドサーバー)で実行されますか?

4

1 に答える 1

7

イベント駆動型プログラミング!=スレッドプログラミングですが、重複する可能性があります(重複する必要があります)。

スレッドプログラミングは、システムが複数のアクションを「同時に」処理する必要がある場合に使用されます。ほとんどのOSはスレッド化されたアクティビティにタイムシェアリングモデルを使用しているので、私は同時に大まかに使用します。少なくとも、使用可能なプロセッサよりも多くのスレッドがある場合に使用します。いずれにせよ、あなたのQに密接に関係していません。

キーボードからユーザー入力を受け取る(スレッド1)と、受け取った入力に基づいて計算を実行する(スレッド2)など、2つ以上のことを実行するアプリケーションが必要な場合は、スレッドプログラミングを使用します。

イベント駆動型プログラミングは少し異なりますが、スケーリングするには、スレッドプログラミングを利用する必要があります。イベント/割り込みを待機し、イベントの発生時に処理する単一のスレッドを持つことができます。本当にシングルスレッドの場合、最初のイベントの処理中に、入ってくる追加のイベントはブロックまたは失われます。マルチスレッドのイベント処理モデルがある場合、イベントが発生すると追加のスレッドがスピンアップします。必要なプロデューサー/ワーカーメカニズムについて詳しく説明しますが、質問のレベルに密接に関係しているわけではありません。

イベントを受信すると、サーバーが状態情報の処理/保存を開始するのはなぜですか?まあ、それはにプログラムされていたので。:-)状態処理は、イベント処理に関連する場合と関連しない場合があります。イベントがスレッドとは異なるのと同じように、状態処理はイベント処理とは別の主題です。

それはあなたが提起したすべての質問に答えるはずです。ジョニーの最初のコメント/ポイントは注意する価値があります-あなたが理解していないことについてより具体的にすることはあなたにより良い答えを得るでしょう。

于 2012-04-25T21:15:54.267 に答える