尽管并发程序设计原理已经被提出了很长时间,但只有在多核处理器出现后的最近几年,它才获得了很多向前发展的推力。什么是并发程序?将一个程序视为同时执行并通过某种方式协调的一系列计算操作,称为并发程序。实现一个能够运行的并发程序比一个顺序运行的程序要困难得多。既然并发编程有如此多的困难,为什么还需要并发编程呢?
并发程序有很多优点。首先,并发处理任务可以提高程序的性能,整个程序不再由单个处理器执行,不同的计算操作可以由不同的独立的处理器执行,这样使程序运行得更快。随着多核处理器的发展,并发程序设计越来越受到关注。
其次,并发程序设计模型可以实现更快速的I/O操作。对于I/O密集型的操作来说,这可以提高吞吐量。并发编程可以在多任务处理中,以异步的方式并行执行,而不需要同步等待。例如网页设计中的AJAX技术等,这种技术使浏览网页更友好,提升用户体验。因此,并发编程技术能够切实地提高程序的交互操作性。
最后,并发编程可以将复杂的线性执行的任务,划分成更小的独立的任务,这些小任务独立执行,简化了程序实现的难度和维护工作的困难。并发编程已经变得越来越重要,因此对于每一位软件开发者来说,掌握并发程序设计非常重要。
相比传统的并发设计模型而言,Scala通过实现Actor模型来进行并发编程。(www.daowen.com)
本章会先介绍Scala原生的Actor模型(稍后的架构篇中会介绍基于Scala Actor模型实现的Akka框架)。Scala语言提供了原生的Actor并发模型,并向用户给出了简单易用的用户接口。在Java中提供了对并发的支持,虽然这样的支持能够满足基本的并发需求,但在使用中发现,随着程序变得越来越大、越来越复杂,使用该模型变得越来越不容易。Scala语言中增加了Actor并发模型,这无疑是对Java并发不足进行的补充,因为Actor提供了一种易于使用的并发模型,并且能够避免Java原生并发模型所遇到的困难。
Actor模型在并发编程上面的优异表现,使其在并发编程中获得了广泛的运用,本章将会通过讲解Scala中的Actor模型,逐渐深入Scala中,以Actor模型为中心的并发编程。在本章的最后通过并发编程实例,讲解Actor并发编程模型。
请读者们注意,Scala中的Actor模块在Scala 2.10版本中已经被标记为过时,在之后的版本中,Actor模块已被移除,开发者如果使用的是Scala 2.10之后的版本,应该选择Akka框架中的Actor。其实,Akka框架是建立在Scala Actor模型之上的,和Scala中的Actor异曲同工。
免责声明:以上内容源自网络,版权归原作者所有,如有侵犯您的原创版权请告知,我们将尽快删除相关内容。