首页 > 其他 > 详细

第十章 并行编程

时间:2014-05-13 05:55:18      阅读:366      评论:0      收藏:0      [点我收藏+]

第十章并行编程

 

最近并行编程(parallel programming)已经不再是相对较晦涩的主题,由只能是专业开发人员精通,变得更为主流,这是因为日益流行多核处理器。在写作本书的时候,想买一台单核处理器 PC 机,已经几乎不可能,双核已是标配,四核处理器也开始出售,而未来几年内这种趋势还将继续完全在意料之中。

在某些程度上,并行编程中的这种兴趣在带动了函数编程的新的兴趣。函数式编程当然不是所有的并行编程问题最佳解决方案(silver bullet,银色子弹),但它可以有助于设计出以并行方式执行的软件。在本章中,我们将学习一些较简单的技巧,使程序并行运行,以及如何利用多处理器。

把并行编程问题分解成几个更小的主题,往往很有帮助,也正是我们这一章所要做的:

线程、内存、锁定和阻塞(Threads, Memory, Locking, and Blocking):在这里,我们将学习在 .NET 编程中如何创建、控制线程的基础知识,如何在线程之间共享资源(比如内存),如何控制访问这些共享资源;

响应式编程(Reactive programming):程序能够保持对用户输入的响应是体验,因此,应该避免在负责响应用户输入的线程中做太多的处理。这对图形用户界面(GUI)编程特别重要,也同时适用于服务器,因为它需要一直保持响应传入的请求;

数据并行(Data parallelism):即用不同的数据在几个处理器上同时执行一段代码,这是并行化(parallelize)处理大型数据结构,比如集合的好方法。并行地把一个转换应用到集合的几项是可能的,这通常能够提高整体的执行速度。典型的示例是并行映射(parallel map),它是最简单的并行化函数程序的方法之一。

异步编程(Asynchronous programming):有些任务,特别是输入输出,需要异步执行,以提高程序的运行效率。因此,保证在输入输出期间线程不会长时间阻塞,非常重要。

消息传递(Message passing):正式地称为角色模型(actor model)。它是用来协调并行执行的任务,是本章讨论的最先进的并行编程(parallel-programming)主题。

并行编程是一个很大的主题,因此,不是这一章所能说完的,但是,我们力图一种利用 F# 进行并行编程的起步的简单方法。

 


第十章 并行编程,布布扣,bubuko.com

第十章 并行编程

原文:http://blog.csdn.net/hadstj/article/details/25599001

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!