アクターモデル

並行計算のモデル。アクターを計算の基本単位とし、各アクターはメッセージ受信に応じて「①有限個の新アクター生成、②他アクターへメッセージ送信、③次に受け取るメッセージへの振る舞い変更」だけを行う。共有メモリを持たず、非同期メッセージパッシングのみで通信。Carl Hewitt (1973) 提唱。

中核の性質

型付きアクター

素のアクターはどんなメッセージも受け取れて型安全でない。型付きアクターは「この振る舞いが受け取れるメッセージ型」を型で固定する(Akka Typed の Behavior[T] など)。プロトコル違反をコンパイル時に弾け、分散シミュレーション等で堅牢になる。

CSP(チャネル)との違い

アクターモデルCSP(Go の channel 等)
通信路宛先アドレスへ送る無名のチャネルを共有
同期性非同期(メールボックス)基本ランデブー(同期)
結合送り手が受け手を知る送受がチャネルだけを知る

実装

Erlang / Elixir(BEAM の軽量プロセス)、Akka(Scala/JVM)、Microsoft Orleans(virtual actors)、Pony。

関連

Graph