在計算機科學中,參與者模式(英語:Actor model)是一種並行運算上的模型。“參與者”是一種程式上的抽象概念,被視為並行運算的基本單元:當一個參與者接收到一則訊息,它可以做出一些決策、建立更多的參與者、傳送更多的訊息、決定要如何回答接下來的訊息。參與者模式在1973年於Carl Hewitt、Peter Bishop及Richard Steiger的論文中提出
基本概念
- 傳送有限數量的訊息給其他參與者;
- 創建有限數量的新參與者;
- 指定接受到下一個訊息時的行為。
使用參與者模式編程
早期參與者模式程式語言
- Act 1, 2 and 3
- Acttalk
- Ani
- Cantor
- Rosette
後期參與者模式程式語言
參與者模式庫及框架
名稱 | 狀態 | 最後發布 | 軟體許可證 | 語言 |
---|---|---|---|---|
活躍 | 2013-05-30 | Java | ||
Actor Framework | 活躍 | 2013-11-13 | Apache 2.0 | .NET |
Akka (toolkit) | 活躍 | 2014-03-26 | Apache 2.0 | Java and Scala |
Akka.NET | 活躍 | 2014-02-01 | Apache 2.0 | .NET |
Remact.Net | 活躍 | 2014-03-23 | .NET | |
Ateji PX | 活躍 | ? | ? | Java |
F# MailboxProcessor | 活躍 | same as F# (built-in core library) | Apache License | F# |
Korus | 活躍 | 2010-02-01 | GPL 3 | Java |
Kilim | 活躍 | 2011-10-13 | Java | |
ActorFoundry(based on Kilim) | 活躍? | 2008-12-28 | ? | Java |
ActorKit | 活躍 | 2011-09-14 | Objective-C | |
Cloud Haskell | 活躍 | 2012-11-07 | Haskell | |
CloudI | 活躍 | 2014-02-02 | Erlang, C/C++, Java, Python, Ruby | |
NAct | 活躍 | 2012-02-28 | LGPL 3.0 | .NET |
Retlang | 活躍 | 2011-05-18 | New BSD | .NET |
活躍 | 2013-01-22 | Java | ||
Jetlang | 活躍 | 2012-02-14 | New BSD | Java |
Haskell-Actor | 活躍? | 2008 | New BSD | Haskell |
GPars | 活躍 | 2012-12-19 | Apache 2.0 | Groovy |
PARLEY | 活躍? | 2007-22-07 | GPL 2.1 | Python |
活躍 | 2013-06-30 | New BSD | Python | |
活躍 | 2013-07-19 | Clojure | ||
Pykka | 活躍 | 2013-07-15 | Apache 2.0 | Python |
Termite Scheme | 活躍? | 2009 | Scheme (Gambit implementation) | |
Theron | 活躍 | 2012-08-20 | C++ | |
活躍 | 2013-07-19 | Java | ||
Libactor | 活躍? | 2009 | GPL 2.0 | C |
Actor-CPP | 活躍 | 2012-03-10 | GPL 2.0 | C++ |
活躍 | 2011-11-28 | Apache 2.0 | Java | |
C++ Actor Framework (CAF) | 活躍 | 2014-07-23 | Boost Software License 1.0andBSD 3-Clause | C++11 |
Celluloid | 活躍 | 2012-07-17 | Ruby | |
LabVIEW Actor Framework | 活躍 | 2012-03-01 | ? | LabVIEW |
QP frameworks for real-time embedded systems | 活躍 | 2012-09-07 | GPL 2.0and commercial (dual licensing) | C and C++ |
libprocess | 活躍 | 2012-07-13 | Apache 2.0 | C++ |
SObjectizer | 活躍 | 2014-07-01 | New BSD | C++ |