如何编写利用多核处理器的.NET应用程序

时间:2009-03-03 19:29:48

标签: .net multicore

随着多核处理器变得越来越流行,我认为熟悉如何编写代码以利用它们是明智之举。我是.NET开发人员,不知道从哪里开始(严肃地说,我有没有线索从哪里开始)。有什么建议吗?

8 个答案:

答案 0 :(得分:12)

多核编程本质上是多线程编程。只要您的应用程序是多线程的,操作系统就会确定运行哪个线程的核心。

那么,你真正的问题应该是,什么样的应用程序会从多线程中受益?想想这样的应用程序,然后实例化多个线程来解决问题的相同部分。

答案 1 :(得分:3)

最好的方法是获取并行扩展框架的最新CTP并开始浏览它们的示例代码。

答案 2 :(得分:2)

阅读.NET使用的异步编程模型。研究允许委托在线程池中执行的BeginXXX和EnxXXX范例。

Stream类都具有允许您执行异步IO的BeingXXX,EndXXX方法(例如BeginRead,EndRead)。如果您正在开发基于IO的东西,那么您将希望使用这些方法来提高并行性。

答案 3 :(得分:2)

我不再经常推荐书籍,但Joe Duffy Concurrent Programming on Windows只是不可替代的。

答案 4 :(得分:1)

在.net 4.0上查找信息。它将为它添加不同的结构。

答案 5 :(得分:1)

就像JaredPar所说的那样,Parallel Extensions相当不错。我和他们玩了一下,他们很容易使用并且增加了性能。

我非常喜欢的构造是Parallel.ForEach()和PLinq。

Parallel.ForEach类似于DotNet 2.0集合中的ForEach(委托)函数。它需要一个动作委托并且并行运行它。

Plinq允许您通过在查询末尾添加.AsParallel()以并行方式执行任何正常的Linq查询。

查看Jared发布的链接以获取更多信息。

答案 6 :(得分:0)

这可能会产生good starting place

答案 7 :(得分:0)

只需将项目分成专门用于执行特定功能的各种线程,即可利用多个内核。操作系统处理将不同线程调度到最可用的处理器核心。