族谱网 头条 人物百科

参与者模式

2020-10-16
出处:族谱网
作者:阿族小谱
浏览:278
转发:0
评论:0
基本概念参与者模型推崇的哲学是“一切皆是参与者”,这与面向对象编程的“一切皆是对象”类似,但是面向对象编程通常是顺序执行的,而参与者模型是并行执行的。参与者是一个运算实体,回应接受到的消息,同时并行的:发送有限数量的消息给其他参与者;创建有限数量的新参与者;指定接受到下一个消息时的行为。以上操作不含有顺序执行的假设,因此可以并行进行。发送者与已经发送的消息解耦,是参与者模型的根本优势。这允许进行异步通信,同时满足消息传递的控制结构。消息接收者是通过地址区分的,有时也被称作“邮件地址”。因此参与者只能和它拥有地址的参与者通信。它可以通过接受到的信息获取地址,或者获取它创建的参与者的地址。参与者模型的特征是,参与者内部或之间进行并行计算,参与者可以动态创建,参与者地址包含在消息中,交互只有通过直接的异步消息通信,不限制消息到达的顺序。使用参与者模式编程一些编程语言使用了参与者模型或变种。这些语...

基本概念

参与者模型推崇的哲学是“一切皆是参与者”,这与面向对象编程的“一切皆是对象”类似,但是面向对象编程通常是顺序执行的,而参与者模型是并行执行的。

参与者是一个运算实体,回应接受到的消息,同时并行的:

发送有限数量的消息给其他参与者;

创建有限数量的新参与者;

指定接受到下一个消息时的行为。

以上操作不含有顺序执行的假设,因此可以并行进行。

发送者与已经发送的消息解耦,是参与者模型的根本优势。这允许进行异步通信,同时满足消息传递的控制结构。

消息接收者是通过地址区分的,有时也被称作“邮件地址”。因此参与者只能和它拥有地址的参与者通信。它可以通过接受到的信息获取地址,或者获取它创建的参与者的地址。

参与者模型的特征是,参与者内部或之间进行并行计算,参与者可以动态创建,参与者地址包含在消息中,交互只有通过直接的异步消息通信,不限制消息到达的顺序。

使用参与者模式编程

一些编程语言使用了参与者模型或变种。这些语言包括:

早期参与者模式编程语言

Act 1, 2 and 3

Acttalk

Ani

Cantor

Rosette

后期参与者模式编程语言

参与者模式库及框架

参与者模式库及框架,允许用户在没有内置参与者模式的语言中进行编程。这些框架包括

注意这里没有列出全部框架和库。

参考资料

^Carl Hewitt; Peter Bishop and Richard Steiger.A Universal Modular Actor Formalism for Artificial Intelligence(PDF). IJCAI. 1973. 

^Carl Hewitt. Viewing Control Structures as Patterns of Passing Messages Journal of Artificial Intelligence. June 1977.

^Henry Lieberman.A Preview of Act 1(PDF). MIT AI memo 625. June 1981. 

^Henry Lieberman.Thinking About Lots of Things at Once without Getting Confused: Parallelism in Act 1(PDF). MIT AI memo 626. June 1981. 

^Jean-Pierre Briot. Acttalk: A framework for object-oriented concurrent programming-design and experience 2nd France-Japan workshop. 1999.

^Ken Kahn. A Computational Theory of Animation MIT EECS Doctoral Dissertation. August 1979.

^William Athas and Nanette Boden Cantor: An Actor Programming System for Scientific Computing in Proceedings of the NSF Workshop on Object-Based Concurrent Programming. 1988. Special Issue of SIGPLAN Notices.

^Darrell Woelk. Developing InfoSleuth Agents Using Rosette: An Actor Based Language Proceedings of the CIKM "95 Workshop on Intelligent Information Agents. 1995.

^Dedecker J., Van Cutsem T., Mostinckx S., D"Hondt T., De Meuter W. Ambient-oriented Programming in AmbientTalk. In “Proceedings of the 20th European Conference on Object-Oriented Programming (ECOOP), Dave Thomas (Ed.), Lecture Notes in Computer Science Vol. 4067, pp. 230-254, Springer-Verlag.”, 2006

^Darryl K. Taft.Microsoft Cooking Up New Parallel Programming Language. Eweek.com. 2009-04-17 [2012-12-02]. 

^Humus. Dalnefre.com. [2012-12-02]. 

^Carlos Varela and Gul Agha. Programming Dynamically Reconfigurable Open Systems with SALSA. ACM SIGPLAN Notices. OOPSLA"2001 Intriguing Technology Track Proceedings. 2001, 36. 

^Philipp Haller and Martin Odersky.Event-Based Programming without Inversion of Control(PDF). Proc. JMLC 2006. September 2006. 

^Philipp Haller and Martin Odersky.Actors that Unify Threads and Events(PDF). Technical report LAMP 2007. January 2007. 

^Srinivasan, Sriram; Alan Mycroft.Kilim: Isolation-Typed Actors for Java(PDF). European Conference on Object Oriented Programming ECOOP 2008. Cyprus. 2008 [2008-07-24]. 

^Commit History · kilim/kilim · GitHub. Github.com. [2012-12-02]. 

^Commit History · stevedekorte/ActorKit · GitHub. Github.com. [2012-12-02]. 

^Commit History · haskell-distributed/distributed-process · GitHub. Github.com. [2012-12-02]. 

^Commit History · CloudI/CloudI · GitHub. Github.com. [2014-03-19]. 

^Changes - retlang - Message based concurrency in .NET - Google Project Hosting. Code.google.com. [2012-12-02]. 

^jetlang-0.2.9-bin.zip - jetlang - jetlang-0.2.9-bin.zip - Message based concurrency for Java - Google Project Hosting. Code.google.com. 2012-02-14 [2012-12-02]. 

^Pulsar documentation. 

^Changes — Pykka 1.2.0 documentation. pykka.org. [2014-03-30]. 

^Theron. Theron-library.com. [2012-12-02]. 

^Theron. Theron-library.com. [2012-12-02]. 

^Pulsar GitHub. 

^Changes - actor-cpp - An implementation of the actor model for C++ - Google Project Hosting. Code.google.com. [2012-12-02]. 

^Commit History · s4/s4 · GitHub. Github.com. [2012-12-02]. 

^Tags · actor-framework/actor-framework · GitHub. Github.com. [2014-07-23]. 

^celluloid | RubyGems.org | your community gem host. RubyGems.org. [2012-12-02]. 

^Community: Actor Framework, LV 2011 revision (version 3.0.7). Decibel.ni.com. [2012-12-02]. 

^QP Active Object Frameworks - Browse Files at. Sourceforge.net. [2012-12-02]. 


免责声明:以上内容版权归原作者所有,如有侵犯您的原创版权请告知,我们将尽快删除相关内容。感谢每一位辛勤著写的作者,感谢每一位的分享。

——— 没有了 ———
编辑:阿族小谱
发表评论
写好了,提交
{{item.label}}
{{commentTotal}}条评论
{{item.userName}}
发布时间:{{item.time}}
{{item.content}}
回复
举报
点击加载更多
打赏作者
“感谢您的打赏,我会更努力的创作”
— 请选择您要打赏的金额 —
{{item.label}}
{{item.label}}
打赏成功!
“感谢您的打赏,我会更努力的创作”
返回

更多文章

更多精彩文章
打赏
私信

推荐阅读

· 设计模式
发展历史建筑师克里斯托佛·亚历山大在1977/79年编制了一本汇集设计模式的书,但是这种设计模式的思想在建筑设计领域里的影响远没有后来在软件开发领域里传播的广泛。肯特·贝克和沃德·坎宁安在1987年,利用克里斯托佛·亚历山大在建筑设计领域里的思想开发了设计模式并把此思想应用在Smalltalk中的图形用户接口(GUI)的生成中。一年后埃里希·伽玛在他的苏黎世大学博士毕业论文中开始尝试把这种思想改写为适用于软件开发。与此同时JamesCoplien在1989年至1991年也在利用相同的思想致力于C++的开发,而后于1991年发表了他的著作AdvancedC++ProgrammingStylesandIdioms。同年ErichGamma得到了博士学位,然后去了美国,在那与RichardHelm,RalphJohnson,JohnVlissides合作出版了《设计模式:可复用面向对象软件的基础...
· 设计模式
发展历史建筑师克里斯托佛·亚历山大在1977/79年编制了一本汇集设计模式的书,但是这种设计模式的思想在建筑设计领域里的影响远没有后来在软件开发领域里传播的广泛。肯特·贝克和沃德·坎宁安在1987年,利用克里斯托佛·亚历山大在建筑设计领域里的思想开发了设计模式并把此思想应用在Smalltalk中的图形用户接口(GUI)的生成中。一年后埃里希·伽玛在他的苏黎世大学博士毕业论文中开始尝试把这种思想改写为适用于软件开发。与此同时JamesCoplien在1989年至1991年也在利用相同的思想致力于C++的开发,而后于1991年发表了他的著作AdvancedC++ProgrammingStylesandIdioms。同年ErichGamma得到了博士学位,然后去了美国,在那与RichardHelm,RalphJohnson,JohnVlissides合作出版了《设计模式:可复用面向对象软件的基础...
· 模式生物
相关条目Ensembl-模式生物基因组数据库模式种动物试验基因组计划
· 模式种
植物分类学里的模式种定义模式种一般来说是指:当为一个属被命名时,需要指定一个种作为成立此属的依据,此被指定的种即称为此属的模式种。任一属或属的次分类阶层的学名之模式,来自种名,也就是种名在属的命名时被认为等同此种的模式标本。原则处理植物命名时,与模式相关的法规乃依据国际植物命名法规,当中原则二规定:“借由命名模式来给定植物分类群名称。”由此原则衍生的相关问题在国际植物命名法规所有界定、讨论者,泛称为模式法。例如:早田兰属(HayataAver.)2009年,LeonidV.Averyanov北越的采集发现新种兰科植物裂唇早田兰(HayataglanduliferaAver.),拟新增新的属名,Hayata。Averyanov指定以早田文藏所发表的植物东部线柱兰(Hayatatabiyahanensis)为本属的模式种,并以Hayata命名,以纪念早田文藏。参见正模标本副模标本模式生物参考文...
· 单例模式
构建方式通常单例模式在Java语言中,有两种构建方式:懒汉方式。指全局的单例实例在第一次被使用时构建。饿汉方式。指全局的单例实例在类装载时构建。例子在Java语言中,单例模式(饿汉模式)应用的例子如下述代码所示:publicclassSingleton{privatefinalstaticSingletonINSTANCE=newSingleton();//PrivateconstructorsuppressesprivateSingleton(){}//defaultpublicconstructorpublicstaticSingletongetInstance(){returnINSTANCE;}}在Java编程语言中,单例模式(懒汉模式)应用的例子如下述代码所示(此种方法只能用在JDK5及以后版本(注意INSTANCE被声明为volatile),之前的版本使用“双重检查锁”会发生非...

关于我们

关注族谱网 微信公众号,每日及时查看相关推荐,订阅互动等。

APP下载

下载族谱APP 微信公众号,每日及时查看
扫一扫添加客服微信