异步编程(Asynchronous Programming)
异步编程与我们所看过的其他并行编程形式有一些不同,讨论的其他主题可以有大量的线程并行运行,可以完全利用系统中可用的处理器;而在异步编程中,需要避免阻塞线程,我们在这一章的第一节“线程、内存、锁定和阻塞”中已经对阻塞线程的概念有所了解了。阻塞的线程是不能工作的线程,因为它需要等待其他任务的完成;线程等待的通常任务是操作系统执行的输...
分类:
其他好文 时间:
2014-05-15 12:23:35
阅读次数:
354
第十章并行编程
最近并行编程(parallel programming)已经不再是相对较晦涩的主题,由只能是专业开发人员精通,变得更为主流,这是因为日益流行多核处理器。在写作本书的时候,想买一台单核处理器 PC 机,已经几乎不可能,双核已是标配,四核处理器也开始出售,而未来几年内这种趋势还将继续完全在意料之中。
在某些程度上,并行编程中的这种兴趣在带动了函数编程的新的兴趣。函数式编程当然...
分类:
其他好文 时间:
2014-05-13 05:55:49
阅读次数:
300
线程、内存、锁定和阻塞(Threads, Memory, Locking, and Blocking)
如果你真的想进行并行编程的话,花点时间理解线程和内存的概念是完全值得的。在这一节,我们将学习如何显式地创建线程,并控制对共享资源,比如内存的访问。我的忠告是,应该避免你这样显式创建和管理线程,然而,在使用其他的并行编程方法时,理解底层的线程概念是需要的。
程序运行时,操作系统会创建一个...
分类:
编程语言 时间:
2014-05-12 23:41:53
阅读次数:
639
本篇内容主要包括:1.能够转化为并行循环的条件2.并行For循环的用法:Parallel.For3.并行ForEach的用法Parallel.ForEach4.并行LINQ(PLINQ)的用法AsParallel()5.并行中断与并行停止的用法与区别6.外部控制循环取消的方法(Break,Stop)...
分类:
Web程序 时间:
2014-05-07 00:33:18
阅读次数:
441
现在普通PC平台上面多核处理器的普及,让我们领教了能够利用多核进行并行计算的软件的处理能力,同时继承更多地核心正是当前处理器发展的趋势。但是作为一个.NET开发人员,是否有时候会发现你的程序占用了其中一个核心的大部分运行时间,甚至达到了100%,除了继续优化处理问题的算法。那么还有方法能够利用CPU...
分类:
Web程序 时间:
2014-05-06 00:56:19
阅读次数:
329