Reactorパターンはウィキペディアで説明されていますが、少し抽象的すぎます。このパターンをより具体的に説明できますか?理想的には、reactorパターンのいくつかのアプリケーションを説明するコードスニペットまたは高レベルのクラス図を使用します。
回答:
あなたはそれを説明している元の論文をチェックしたいかもしれませんhttp://www.dre.vanderbilt.edu/~schmidt/PDF/reactor-siemens.pdf
Reactorデザインパターンは、1つ以上のクライアントによってアプリケーションに同時に配信されるサービスリクエストを処理します。アプリケーション内の各サービスは、サーバーメソッドで構成されている場合があり、サービス固有の要求のディスパッチを担当する個別のイベントハンドラーによって表されます。イベントハンドラーのディスパッチは、登録されたイベントハンドラーを管理する開始ディスパッチャーによって実行されます。サービス要求の逆多重化は、同期イベントデマルチプレクサによって実行されます。
リアクターを使用すると、(たとえばIOが原因で)ブロックする複数のタスクを単一のスレッドを使用して効率的に処理できます。リアクターはハンドラーのプールを管理し、イベントループを実行します。タスクを実行するために呼び出されると、タスクを新しいハンドラーまたは空のハンドラーにリンクしてアクティブにします。イベントループ(1)は、アクティブでブロックされていないすべてのハンドラーを検出します(または、これをディスパッチャー実装に委任します)(2)完了するか、ブロックするポイントに到達するまで、検出された各ハンドラーを順番に実行します。完了したハンドラーは非アクティブになり、再利用のために空になりますが、ブロックされたアクティブハンドラーは降伏し、イベントループを続行できます。(3)手順(1)から繰り返します。