第十章 并行编程

86 篇文章 0 订阅
26 篇文章 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# 进行并行编程的起步的简单方法。

 


  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值