design java8并发 jdk8 - 基于Agent / Actor的并发设计的设计模式




2 Answers

即使我无法想出任何可以直接为您提供设计模式的真实世界示例,也有一些地方可以开始。

首先是围绕概念正确包裹你的头部。 帮助您实现这一目标的一本书就是 Erlang Guru Joe Armstrong编写的软件错误的情况下制作可靠的分布式系统 ,以非常方便的方式解释并发编程。 它实际上是博士学位。 论文,但不要让那吓到你。 与大多数常见的教科书相比,它更容易阅读,也更便宜。

查看实际系统通常意味着您必须对实际语言进行过多学习才能评估事物。 对于Erlang, documentation提供了设计方法和行为(Erlang专门针对设计模式库)。 这将说明此设置中最常用的设计模式。 事实证明,这些系统可以有效地构建大规模系统,即数百万行代码(相当于Java等其他语言的4到10个因子),以及在分布式机器群集中的一台机器上运行的并发进程的数量。 最近的一个真实的实时系统的例子是Facebook Chat

对于其他框架,我恐怕不能真正帮助你。

cas

最近我开始使用支持actor / agent / shared nothing架构的替代语言 - 即。 scala,clojure等(clojure也支持共享状态)。

到目前为止,我所阅读的大部分文档都围绕着介绍级别。 我正在寻找的是四人一组中更高级的文档,而不是基于任何共享。

为什么? 它有助于改变设计思维的变化。 简单的例子很简单,但在现实世界的Java应用程序(单线程)中,您可以拥有1000个具有复杂关系的成员的对象图。 但是,基于代理的并发开发,它在设计大型系统时引入了一整套全新的思路。 即。 代理粒度 - 一个代理应管理多少状态 - 对性能的影响等,或者是将共享状态对象图映射到基于代理的系统的良好模式。 将域模型映射到设计的技巧。 讨论不是关于技术,而是关于如何在设计中最好地使用技术(现实世界“复杂”的例子会很棒)。




here问了一个类似的问题here其中有一些合理的答案可能有所帮助 我仔细看着你的。 我还没有找到真正帮助我的东西,但我非常积极地寻找。

我认为,思维转变是步入并发架构和语言的最大障碍,在此之前,开发人员将坚持使用易于学习的MS风格范例。 为了真正成为主流,它需要进入学校并与C#和VB一起教授。

我对2080程序员问题的回答是“同时”。




Related