Reactor反応器の実現方法詳細


ほとんどのアプリケーションはACE_を使います。Reactor:instance()が提供するデフォルトの反応器の例です。しかし、あなたが自分の反応器を選ぶこともできます。これはACEがBridgeモードを使っているからです。例えば、スレッド池反応器を使って、ACE_を実現します。TPReactor*tp_reactor=new ACE_TPReactor;ACE_Reactor*my_reactor=new ACE_Reactor(tp_)レクチャー1はmy_を表しますreactorを破壊する時もtp_を削除します。reactoACE_Reactor:instanceレクチャー1プログラム終了時にmy_を削除することを示します。レクチャーの実例
反応器の実現1)ACE_Select_.ReactorはWindows以外のすべてのプラットフォームで使用されるデフォルトの反応器を実装します。2)ACE_WFMO_Reactor Windows上のデフォルト反応器が実現しました。3)ACE_Msg_WFMO_ReactorアプリケーションCOM/DCOMサーバー。4)ACE_TPReactorはACE_を拡張しましたSelect_.Reactorは、複数のスレッドで同時に実行することができます。Leader/Followerテンプレートは、スレッドの一つがリーダーとなり、イベントを待つために反応器の所有権を取得します。5)ACE_PriorityReactorもACE_を広げました。Select_.Reactor。ACE_を使用しましたイベントHandler類におけるpricety()方法は、優先度が高いイベントを先に処理します。6)GUI統合反応器はX Window Systemに使用され、ACE_を拡張しました。Select_.Reactor。単スレッドアプリケーションでは、GUI時間(ボタンを押すなど)にも応答し、自分のアプリケーションイベントにも対応します。QuickTime Reactor FastLight Reactotk ReactoXt Reactor