第九章:Scala之并发编程
¶主要内容:
- 并发编程挑战
- actor编程模型
- actor中的错误处理
- 并发编程中组合Future和Promise
在本章将介绍Scala中最为激动人心的特性:actor库。可以把一个actor认为是一个对象,该对象处理一个消息(请求)并封装状态(actor间的状态是不共享的)。接收一个消息,并在相应中执行一个动作的能力,这样的对象称为一个actor。更高层面上讲,actors是你做面向对象编程(OOP)时应该实现的方式。要记得actor模型鼓励不共享状态的体系架构。在本章,我将解析为什么在任何并发编程里面,这是一个重要的性质。
Future 和 Promise以非阻塞(nonblocking)的方式提供了执行并发操作的抽象。这是一个很好的方式来创建多并发和平行计算,以此计算你的工作(job)。这和你如何组合函数很相似,但,在这里,函数被并发(concurrently)地或平行(parallel)地执行。Future可以认为是一个代理对象,你可以为一个以后会用到结果进行创建。你可以用Promise有提供的结果来完成一个Future。我们将在本章循序渐进得探索Promise 和 Future。首先,让我们先理解下我所理解的并发、并行编程。