Welcome

首页 / 软件开发 / .NET编程技术 / .NET 4并行(多核)编程系列之一 入门介绍

.NET 4并行(多核)编程系列之一 入门介绍2012-02-13 博客园 小洋本篇文章的议题如下:

1. 并行编程和多线程编程的区别。

2. 并行编程技术的利弊

3. 何时采用并行编程

1.并行编程和多线程编程的区别。

1.1并行编程。

现在随着多核计算机的普及,并行编程技术,也就是多核编程技术也逐渐称为开发的主流。为此,在.NET 4 中就引入了“并行编程”。在.NET 4 中一些列的Library和类为并行编程提供了支持,如: Task Parallel Library,Parallel LINQ等。

其实在.NET 1.0中就有了并行编程技术的一些实现---多线线程技术。多线程最大的问题就是难于使用和管理。在使用多线程的使用,因为它的复杂性,往往使用我们把注意力分散了多线程上。而致使我们的最初目的被掩盖了。

1.2 比较区别

在.NET 4中提出的并处编程的底层机制其实还是基于多线程的。但是他们之前最大的区别就是.NET 4中的并行编程更加方便。

在传统的编程模型中,程序员负责创建线程,为线程分配任务,管理线程。一个形象的比喻:你拥有一批士兵,然后你对他们下达命令,之后,你就必须时刻监视你的那些士兵,确保他们按照你的意图办事。(很累吧!)

在.NET 4中的并行编程是依赖Task Parallel Library(后面简称为TPL) 实现的。在TPL中,最基本的执行单元是task(中文可以理解为"任务"),一个task就代表了你要执行的一个操作。你可以为你所要执行的每一个操作定义一个task,TPL就负责创建线程来执行你所定义的task,并且管理线程。TPL是面向task的,自动的;而传统的多线程是以人工为导向的。

Task机制使得我们把注意力关注在我们要解决的问题上面。如果之前的多线程技术使得我们放弃了一些并行编程的使用,那么.NET 4中的新的并行编程技术可以让我们重新建立信心。

虽然有了新的并行技术,但是传统的多线程的技术还是很有用的。当我们使用TPL中的并行技术的时候来执行多个task的时候,我们不用在关心底层创建线程,管理线程等。

2. 并行编程技术的利弊

使用并行技术最大的好处就是提高了系统的性能。并行处理过程一般是这样的:一个要执行的任务被拆分为很多很小的部分,然后这些很小的部分就分别在不同处理器(可以是多核的一台电脑,也可以使很多的电脑)上执行。因为这些很多很小的部分同时在执行,所以称之为"并行"。