随着多核处理器变得越来越流行,我认为熟悉如何编写代码以利用它们是明智之举。我是.NET开发人员,不知道从哪里开始(严肃地说,我有没有线索从哪里开始)。有什么建议吗?
答案 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)
只需将项目分成专门用于执行特定功能的各种线程,即可利用多个内核。操作系统处理将不同线程调度到最可用的处理器核心。