2009-03-03 101 views

回答

12

多核編程基本上是多線程編程。只要你的應用程序是多線程的,操作系統將決定運行哪個線程的核心。

那麼,你真正的問題應該是,什麼樣的應用程序會受益於多線程?想想這樣的應用程序,然後實例化多個線程來解決問題的相等部分。

3

最好的啓動方式是獲取並行擴展框架的最新CTP並開始翻閱他們的示例代碼。

+0

也許並行擴展有點過分了。不應該通過手動線程開始一點,瞭解所有問題並學習基礎知識? – 2009-03-03 19:37:30

+0

我傾向於認爲通過這些學習更好(因此我的答案是在.net 4.0上查找信息)。基本上,你花更少的時間在你如何把所有東西都搞定,並且花更多的時間來研究並行如何影響邏輯。如果沒有來源可用,你可以看到反射器:) – eglasius 2009-03-03 19:48:56

1

查找在.NET 4.0的信息。它將爲它添加不同的構造。

2

閱讀.NET使用的異步編程模型。學習允許代理在線程池中執行的BeginXXX和EnxXXX範例。

Stream類都具有BeingXXX,EndXXX方法(例如BeginRead,EndRead),它們允許您執行異步IO。如果你正在處理大量基於IO的事情,你會希望使用這些方法來增加並行性。

+0

「閱讀......」我認爲你有這些範例的理解。你有什麼材料可以建議我開始嗎? 謝謝! – 2009-03-03 20:40:27

0

簡單地將您的項目分成專用於執行特定功能的各種線程,可讓您利用多個內核。操作系統處理將不同的線程調度到最可用的處理器內核。

1

就像JaredPar說的那樣,Parallel Extensions很不錯。我和他們一起玩,他們很容易使用,並增加了性能。

我很喜歡的構造是Parallel.ForEach()和PLinq。

Parallel.ForEach類似於DotNet 2.0集合中的ForEach(委託)函數。它需要一個動作委託並且並行地運行它。

Plinq允許您通過將.AsParallel()添加到查詢結尾來以並行方式執行任何常規Linq查詢。

查看Jared發佈的鏈接以獲取更多信息。

相關問題