1

次の場所でアクティブオブジェクトに関する記事を読んでいます

http://www.cs.wustl.edu/~schmidt/PDF/Act-Obj.pdf

このホワイト ペーパーでは、アクティブ オブジェクト パターンについて説明します。このパターンは、メソッドの実行をメソッドの呼び出しから切り離し、独自の制御スレッドに存在するオブジェクトへの同期アクセスを簡素化します。アクティブ オブジェクト パターンを使用すると、1 つ以上の独立した実行スレッドが、単一のオブジェクトとしてモデル化されたデータへのアクセスをインターリーブできます。プロデューサ/コンシューマおよびリーダー/ライター アプリケーションの幅広いクラスは、この同時実行モデルに適しています。

メソッド呼び出しを分離するメソッドの実行方法を理解しました。

アクティブなオブジェクト パターンによって、1 つまたは複数の独立した実行スレッドが、単一オブジェクトとしてモデル化されたデータへのアクセスをインターリーブできるようにする方法について、作成者が何を意味しているのかについての私の質問は?

単一のオブジェクトとしてモデル化されたデータによって作成者が何を意味するか、およびこの場合にスレッドがどのようにインターリーブするかについての例を示すように要求します。

お時間をいただきありがとうございます。

4

1 に答える 1

0

一言で言えば、パターンは、メソッドがすべて同じスレッドで実行されるオブジェクト内にステータスを配置できることを示しています。通常、これはオブジェクト内の同期キューで実現されます。そのパブリック メソッドは直接作業を行うわけではありませんが、要求をキューに入れるだけです。次に、キュー内の要求を 1 つずつ処理するスレッドがあります。

このように、アクティブなオブジェクト内のデータは一意のスレッドによってのみアクセスされるため、明示的な同期について心配する必要はありません (つまり、ミューテックスを使用する必要はありません)。

要点を言えば、「単一オブジェクトとしてモデル化されたデータ」は、アクティブなオブジェクトに含まれるデータです。それらは、独自のスレッドによって他のオブジェクトからアクセスされます。各メソッド呼び出しは、内部キュー内の要求によって表されるため、要求はインターリーブされます!

Schmidt は彼の論文で、アクティブ オブジェクトが例を使用してどのように機能するかを詳細に説明しています。

于 2013-09-11T07:04:09.230 に答える