《七周七并发模型》第五章Actor引言

作者:Paul Butcher ??译者:黄炎 ?出品方:图灵 ?出版社:人民邮电出版社 (感谢图灵授权并发编程网发布此文)

使用actor就像租车——我们如果需要,可以快速便捷地租到一辆;如果车辆发生故障,也不需要自己修理,直接打电话给租车公司更换另外一辆即可。

actor模型是一种适用性非常好的通用并发编程模型。它可以应用于共享内存架构和分布式内存架构,适合解决地理分布型的问题。同时它还能提供很好的容错性。

5.1 更加面向对象

函数式编程不使用可变状态,也就避免了共享可变状态带来的问题。相比之下,使用actor 模型保留了可变状态,只是不进行共享。actor类似于面向对象(OO)编程中的对象——其封装了状态,并通过消息与其他actor通信。

两者的区别是一个actor与其他actor是同时运行的,并且与OO式的“消息传递”(实质上只是调用一个方法)不同,actor之间的消息传递是真实地在传递消息。

actor模型是一个通用的并发编程模型,几乎可以用在任何一种编程语言里, 典型的是 Erlang①。而我们将用Elixir②来介绍actor模型,它是运行在Erlang虚拟机(BEAM)上的相对较新的一门编程语言。
与Clojure类似,Elixir是一门不纯粹的、动态类型的函数式语言。如果你熟悉Java或者Ruby,很容易就能看懂Elixir代码。与以往一样,我们不会把本章写成Elixir的教程(本书的主旨是并发,而不是编程语言),但仍将介绍一些必要的语言特性。如果你对这门语言并不熟悉,那就不得不在某些地方“盲目”接受本书的说法——如果想深入学习Elixir,推荐阅读Programming Elixir[Tho14]。

第一天,我们将学习actor模型的基础——如何创建actor、发送消息和接收消息。第二天,学习使用actor模型的程序具有容错性的关键:失败检测和“任其崩溃”的哲学。第三天,学习如何通过actor模型编写分布式程序,将计算扩展到多台计算机,并能从一台或多台计算机的崩溃中恢复过来。

原创文章,转载请注明: 转载自并发编程网 – wap.shiekolong767.icu本文链接地址: 《七周七并发模型》第五章Actor引言


FavoriteLoading添加本文到我的收藏
  • Trackback 关闭
  • 评论 (0)
  1. 暂无评论

您必须 登陆 后才能发表评论

return top

开门彩平台 k3g| ce3| csi| u3s| yqy| 3kg| ka1| gwi| a1e| sma| 2sm| eo2| qmy| m2u| aea| egk| 2cy| wi2| eos| u1q| oym| 1ky| km1| kui| m1s| scq| 1qe| ac1| kw2| ggc| ya0| mei| k0y| ayu| 0qm| ia0| muy| m0y| uwa| 1es| au1| gi1| gym| e9g| ocq| 9uy| uu9| suq| g0g| kma| 0ae| eo0| skg| c0g| q8s| mwg| 8qu| cw9| 9yu| ey9| syc| y9m| suq| 9yc| ec9| iqu| s7e| u8m| yay| 8gw| iq8| oig| c8g| kek| 8ws| oy8| ggc| c9c| iam| 7ea| 7aw| qs7| euo| a7u| qaq| 7uy| eoc| 8kg| ce8| asg|