Scalaの--Actorコミュニケーションモデルの概要

  1. 俳優通信モデルの概要

     

モデル情報の送信に使用される1)俳優アッカプロトコル。

2)俳優・ベースのシステムで、すべてのものは、すべてのものがオブジェクトである、オブジェクト指向設計かのように、俳優です。

同時実行モデルの設計やアーキテクチャなど3)俳優モデル。俳優及び監督の間でメールボックスに示されるのみメッセージ通信を介して、のように。

4)それだけで、別のアクターメッセージに場合俳優、俳優及び監督のメッセージ通信との間で使用することができ、メッセージは、単に、適切なメールボックスにメッセージを投稿し、順序(メッセージキュー)です。

5)俳優によって決定される方法のメッセージを処理するためのメッセージを受信すると、メッセージの俳優を送信、返信プロセスが非同期かもしれ待つことができます。

責任6)ActorSystemを作成し、彼らが作成した俳優の管理を担当する、ActorSystemはシングルトン(ActorSystemは工場、特別に作成された俳優でもよい)、JVMプロセスを持つことができるというAcotrは、それらの多くを持つことができますがあります。

7)俳優・モデルは、並行モデルは、より抽象的です。

8)俳優・モデルは、非同期、ノンブロッキング、高性能なイベント駆動型のプログラミングモデルです。9)アクターモデルは軽量なイベント処理がある(1GBのメモリは百万レベル俳優)を保持するため、大規模な高同時パフォーマンスを扱うことができます。

 2. ActorSystem階層

 

1)ActorySystem俳優を作成

2)ActorRef:俳優剤または参照であると理解されるであろう。メッセージは俳優によって行われていない、ActorRefを介して送信されます

介してメッセージをActorRefれ、メッセージを送信し、それはそのメッセージがどの発行俳優意味

3)メッセージは、ディスパッチャメッセージ(メッセージ分配)に、それはメッセージを取得し、メッセージは、対応する配布されます

メールボックス。(注:ディスパッチャメッセージは、スレッドプールであると理解されるであろう、メールボックスがメッセージ・キューであると理解されるが、遅くてもよいです

)複数のメッセージをチョン、FIFOに従ってください

4)俳優メッセージによって取得されたメソッドを受信し、その後、処理することができます。

 

メッセージメカニズム(マップ)の俳優モデル

1)各メッセージはメッセージ・オブジェクトです。メッセージスレッドクラスであるため、メッセージは、Runableを継承しています。

2)アクターモデルから非常に面倒な仕組みに見えますが、プログラマはそれだけで俳優のプログラミングを書く必要が、俳優のモデルに他を完成させることができます。

3)アクターBの俳優与えるためにメッセージを送信するには、最初にメッセージを送信するためにも、ホールドとして知られている俳優()B俳優プロキシオブジェクトのActorRefを取得する必要があります

 

 

3. ActorPathは何ですか

俳優のパスとは何ですか?

俳優は、厳格な階層的な方法で作成されているので、下向きの根系が指定されている方へ、子と親の俳優間の再帰的な監督へのリンクが続き、ユニークなシーケンスの俳優の名前があります。俳優とファイルシステム階層の階層にもかかわらず、いくつかの基本的な違いがある、このシーケンスは、ファイルシステムフォルダとして見ることができるので、我々はそれを参照するために名前「パス」を使用します。

パスは、指定されたアクタガーディアンにルートから、システム・アクターは、直列パス要素を識別する一のアクターアンカーを含む、アクター要素のパス名は、スラッシュで区切られた、横断されます。

 4.どのように俳優のリファレンスを見つけるのですか?俳優の参照を作成する方法

俳優リファレンスActorRefの主な役割のサブタイプである、それは俳優がメッセージを送信表しActorRefをサポートすることです。

各アクターは、デフォルトでは、自己参照を介してその仕様(ローカル)にアクセスすることができ、

送信者が別のアクターにメッセージを送ったとして、このリファレンスも使用されています。

メッセージ処理中に、俳優は、送信者フィールドにアクセスしてメッセージ送信者への参照を取得することができます。

 

 5. Scalaの暗黙的な変換

Scalaは暗黙の変換がサポートされている暗黙的変数、メソッド、クラスを使用して変更しました

クラスが存在しない場合、オブジェクトは、コンパイラが自動的に(タイプに応じて)暗黙オブジェクトを変換するメソッドまたはメンバーを呼び出します

使用implicit修饰的变量,可以在方法需要参数时,编辑器自动加载到方法参数中

隐式转换函数是以 implicit 关键字声明的带有单个参数的函数。这种函数将会自动应用,将值从一种类型转换为另一种类型

1)  隐式转换函数的函数名可以是任意的,隐式转换与函数名称无关,只与函数签名(函数参数类

型和返回值类型)有关。

 

2)  隐式函数可以有多个(即:隐式函数列表),但是需要保证在当前环境下,只有一个隐式函数能

被识别

隐式类使用有如下几个特点:

1) 隐式类的构造参数有且只能有一个

2)  隐式类必须被定义在“类”或“伴生对象”或“包对象”里,即隐式类不能是顶级的(top-level objects)。

3)  隐式类不能是 case class

4)  作用域内不能有与之相同名称的标识符

おすすめ

転載: www.cnblogs.com/eric666666/p/11203479.html