2008-08-05 478 views

回答

1

http://www.cilk.com/multicore-e-book/

這就是sitution的一個很好的概述,如果你正在尋找tuorials和書籍它可能是最好的指定語言爲出發點,因此您可以使用一些代碼陷入混亂。

1

Erlang編程語言提供了並行編程的簡單易用的風格。你可能永遠不會真正使用Erlang,但這些概念可以傳送到其他語言。您可能想要閱讀編程Erlang:並行世界軟件

函數式編程的粉絲聲稱不需要學習任何新東西。只需使用純函數式語言,編譯器或解釋器就會自動並行處理所有內容。所以你可能想學習Haskell,OCaml或其他函數式語言。

2

我讀過(大部分)Java Concurrency in Practice Brian Goetz撰寫,這是非常好的。

顯然有(使用Java的線程,鎖等具體實現),通過這本書上運行的基於Java的主題,但幾乎所有的原則可以應用到其他語言。

作者的主頁包含list of articles他寫的,其中包括一些線程相關的東西。也許從那裏開始,如果你喜歡他的風格,那就買這本書吧。

2

對於C#(或.NET中的併發編程)的一個很好的指導和參考,我建議在MSDN上使用Vance Morrison的MSDN What Every Dev Must Know About Multithreaded Apps文章。它包含了大量關於多線程開發的最佳實踐信息和注意事項

1

我覺得如Boost.Threads是一個偉大的C++併發庫的學習,特別是如果你只是想以書面形式多線程應用程序啓動。代碼非常簡潔易懂,再加上下一個C++標準可能會包含一個基於Boost.Threads的線程庫(教程:http://www.ddj.com/cpp/184401518

1

如果您想要做一個高度並行版本的簡單的任務,或看到真正的解決方案,你可能會比看項目wide finder更糟糕。基本上它是關於如何有效地執行日誌文件的並行正則表達式匹配,但是嘗試添加儘可能少的代碼。

參與者已經提交了許多不同語言的解決方案,並且發佈了performance results。原來的項目已經完成,現在有wide finder 2正在開展工作。

CodingHorror有一個很好的introduction to wide finder

1

對於豐富,徹底治療的個體,擁有計算機科學與實踐之間的良好平衡,我建議The Art of Multiprocessor Programming。很多示例都是面向對象的代碼,即Java,其他語言分散在各處。這取決於所涉及的主題。我真的很喜歡這本書,它討論瞭如何在並行設計中實現常用算法。當然,還有更多!

對於pthreads的一般概念和處理,我真的很喜歡Programming with POSIX Threads。作爲它的庫和API,它在C.

對於Windows和C#開發人員,請查看Joe Duffy's blog。 Joe從事微軟開發部門的並行庫,基礎架構和編程模型。他有一本2008年11月發行的書名爲Concurrent Programming on WindowsAmazon link)。

另外,千萬不要錯過教父的博客:Herb Sutter的Sutter's Mill。他與Dobb博士的雜誌上的所有文章都有聯繫。點擊他的Concurrency category

2

我保持linkblog併發文章,博客,以及在項目:

http://concurrency.tumblr.com

我通常張貼各種主題的每天一個鏈接或兩個(線程,演員,鎖定,並行編程)在各種環境中(Erlang,Java,Scala,.NET,C++,Ruby,Python等)。

相關問題