2010-03-17 70 views
17

隨着英特爾推出面向桌面的Hexa-Core(6)處理器,看起來我們已經不能再等待微軟讓多核編程變得「輕鬆」了。我只是訂購了Joe Duffy的書Concurrent Programming on Windows。這看起來是一個很好的開始,但我希望你們中的一些人瞄準多/多核心繫統,這些核心系統會指向我一些有助於你的項目的好資源?C#的並行編程模式?


您已經給出了一些很好的答案,但讓我補充一下我的意思是「良好的資源」。僅僅因爲我們擁有6,12或48個內核並不意味着我們的應用程序將從嘗試使用它們中受益。我始終認爲,當我們的系統中有大量的內核時,當前的編程範例將發生變化。

我應該閱讀哪些博客/書籍以最好地理解模式以及何時使用它們。有沒有什麼好的播客或網絡廣播可以提供幫助。


這裏有幾個環節,我發現有趣:

通常是有用的:

多線程:

+0

我們將在下週的CodePlex上發佈上述p&p書籍的前幾章的草稿以及下週的樣本。 http://parallelpatterns.codeplex.com/ 我們歡迎您對我們正在做的事情提供反饋,請隨時查看。 謝謝, 阿德 – 2010-04-09 16:24:13

+0

@Ade:我敢肯定,我們都在熱切等待下一個草案,肯定會提供反饋。感謝您保持我們的最新狀態。 – VoidDweller 2010-04-09 17:14:50

+0

我們剛剛發佈了關於Codeplex前言和第1,2和5章的草案,http://parallelpatterns.codeplex.com/。如果您有時間,我們希望聽到您的反饋。 – 2010-04-21 02:00:12

回答

12

這裏有一些選擇

  • F#有併發代碼
  • 並行LINQ和任務在.NET 4中是有用的抽象真的很好的支持。

pfxteam blog在.NET 4

+0

很難打敗pfxteam博客。你知道任何C#3.0特定資源嗎? – VoidDweller 2010-03-24 04:54:40

+0

我打算說Joe Albahari和Jon Skeet,但你已經在問題中列出他們的帖子:) – 2010-03-24 05:19:05

8

新的並行編程工具的更多信息有一個series of articles勵科普塞這是非常全面和廣泛​​。它從基本的並行編程原則開始,並繼續介紹如何使用.NET4中新的任務並行庫實現解決方案。

+0

我已經開始閱讀文章,這看起來應該是我們應該考慮的。 – VoidDweller 2010-03-18 20:24:46

+0

@rwwilden:謝謝你的插件。只是想補充一點,它仍然是一項正在進行的工作 - 而且還會有更多的進展。在這一點上剛開始使用任務並行,儘管數據並行性已經很好地刷新了。 – 2010-03-19 17:51:48

4

請注意,在所有這些中,並非您編寫的每個應用程序都必然會從並行編程中受益。操作系統已經能夠在不同內核上拋棄不同的進程,這意味着你的單線程應用程序已經可以從它不必與其他線程和進程共享內核的事實中受益。

+0

這是一個很棒的斯賓塞點,也是我提出問題動機的重要部分。我編輯了我的問題來反映這一點。 – VoidDweller 2010-03-18 06:38:42

2

我同意布賴恩和rwwilden使用任務並行庫。雖然TPL是.NET 4的特色,但如果你的目標是3.5,它可以作爲Reactive Extensions for .NET (Rx)的一部分。

+0

Rx看起來非常引人注目,我喜歡它可以與3.5 sp1一起使用。我會研究它,我想知道它是否可以與我們的應用程序捆綁在一起,還是必須安裝它。 – VoidDweller 2010-03-18 20:07:52

+0

它可以與您的應用程序捆綁在一起,但請檢查上線許可條款。 – 2010-03-20 22:11:22

+0

@Richard:謝謝你的信息。 – VoidDweller 2010-03-22 03:42:10