スレッド プログラミングを学習するのに適したリソースは何ですか?[閉まっている]

StackOverflow https://stackoverflow.com/questions/2482

質問

デスクトップでのマルチコア CPU の台頭により、マルチスレッドのスキルはプログラマーにとって貴重な資産になります。スレッド プログラミングについて学ぼうとしているプログラマーに、いくつかの良いリソース (書籍、チュートリアル、Web サイトなど) をお勧めできますか?

役に立ちましたか?

解決

ハーブ・サッターの「」を見てみましょう。無料ランチは終了しました」とその後の彼の一連の記事 効果的な同時実行性.

他のヒント

Joseph Albahari は、C# でのスレッドの概要をここに書いています。

http://www.albahari.com/threading/

正直自分では読んだことがないのですが、 Java での同時プログラミング 』は何人かの人から勧められていると聞いた本です。

C++ でのマルチスレッドと同時実行について書いています。 私のブログ. 。私は C++ の同時実行性に関する本も執筆しています。 C++ 同時実行の動作.

(ほとんどを)読みました 実際の Java 同時実行性 ブライアン・ゲッツ著、とても良いです。

この本には明らかに Java ベースのテーマが貫かれていますが (スレッド、ロックなどの Java 固有の実装を使用)、ほぼすべての原則は他の言語にも適用できます。

著者のホームページには、 記事一覧 彼が書いたものには、スレッド関連のものも含まれています。おそらくそこから始めて、彼のスタイルが気に入ったら、本を購入してください。

C# (または .NET 一般) での同時実行プログラミングに関する優れたガイドとリファレンスについては、MSDN をお勧めします。 マルチスレッド アプリについてすべての開発者が知っておくべきこと MSDN の Vance Morrison による記事。マルチスレッド開発に関するベストプラクティス情報と注意事項が大量に含まれています。

私は、並行記事、ブログ、プロジェクトのリンクブログを次の場所で管理しています。

http://concurrency.tumblr.com

私は通常、さまざまな環境 (Erlang、Java、Scala、.NET、C++、Ruby、Python など) のさまざまなトピック (スレッド、アクター、ロック、並列プログラミング) に関するリンクを 1 日に 1 つまたは 2 つ投稿します。

これは Delphi に特有のものですが、この概念が他の言語に適用できない理由はありません。

マルチスレッドのチュートリアル

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

これは状況の概要です。チュートリアルや書籍を探している場合は、コードをいじれるように開始点として言語を指定するのが最善かもしれません。

Erlang プログラミング言語は、使いやすいスタイルの同時プログラミングを提供します。Erlang を実際に使用することはないかもしれませんが、その概念は他の言語に移植できます。本を読んでみるといいかもしれません Erlang のプログラミング:同時世界のためのソフトウェア .

関数型プログラミングのファンは、何も新しいことを学ぶ必要はないと主張します。純粋関数型言語を使用するだけで、コンパイラーまたはインタープリターがすべてを自動的に並列化します。したがって、Haskell、OCaml、または別の関数型言語を学習するとよいでしょう。

正確に何を探しているのかわかりませんが、WindowsForms 開発を行っている場合は、次のブログ投稿を毎分読む価値があります。WinForms UI スレッドは以下を呼び出します。Invoke/BeginInvoke/InvokeRequred の詳細なレビュー

Boost.Threads は、特にマルチスレッド アプリケーションの作成を始めたい場合に、学ぶのに最適な C++ 同時実行ライブラリだと思います。コードは非常に簡潔で理解しやすいです。さらに、次の C++ 標準には Boost.Threads に基づくスレッド ライブラリが含まれる可能性があります (チュートリアル: http://www.ddj.com/cpp/184401518)

単純なタスクの高度な並列バージョンを試してみたい場合、または実際の解決策を確認したい場合は、 ワイドファインダー プロジェクト。基本的には、ログ ファイルの並列正規表現一致を効率的に実行する方法についてですが、追加するコードはできるだけ少なくするようにしています。

参加者はさまざまな言語で解決策を提出しました。 パフォーマンス結果 が掲載されています。元のプロジェクトは終了し、現在は ワイドファインダー2 仕事を引き受けること。

コーディングホラー 良いものを持っています ワイドファインダーの紹介.

コンピューター サイエンスと実践のバランスをとりながら、このテーマを充実した徹底的に扱うには、次のことをお勧めします。 マルチプロセッサ プログラミングの技術. 。多くの例はオブジェクト指向コード内にあります。Java とその他の言語が随所に散在しています。それは扱われるトピックによって異なります。この本で私が本当に気に入っているのは、一般的なアルゴリズムを並行設計でどのように実装すべきかについて論じていることです。もちろん、他にもたくさんあります!

一般的な概念と pthread の扱いに関しては、私はとても気に入っています。 POSIX スレッドを使用したプログラミング. 。ライブラリと API であるため、C で書かれています。

Windows および C# 開発者については、こちらをご覧ください。 ジョー・ダフィーのブログ. 。Joe は、Microsoft の開発部門で並列ライブラリ、インフラストラクチャ、プログラミング モデルに取り組んでいます。彼は11月に本を出版する予定だ。2008年のタイトル Windows での同時プログラミング (アマゾンリンク).

ゴッドファーザーのブログもお見逃しなく。ハーブ・サッターズ サッターズミル. 。彼には Dr. のすべての記事へのリンクがあります。ドブの日記など。彼のものをクリックしてください 同時実行カテゴリ.

CPU メーカーの Web サイトには興味深いコンテンツがいくつかあります。

http://developer.amd.com/documentation/articles/Pages/default.aspx#Parallel

http://software.intel.com/en-us/multi-core

Intel のオープンソース スレッド ライブラリにも、いくつかの優れた参考資料があります。

http://www.threadingbuildingblocks.org/

C# を使用する場合は、Gaston C 著の書籍『C# 2008 および 2005 スレッド プログラミング』を参照してください。ヒラー - Packt Publishing - http://www.packtpub.com/beginners-guide-for-C-sharp-2008-and-2005-threaded-programming/book 、 が手伝う。マルチコア コンピューターを利用する面白いサンプルを含むコードをダウンロードできるため、C# プログラマーに強くお勧めします。この本は、練習用のコードがたくさんある素晴らしいガイドです。最も難しい概念を説明しながらストーリーを伝えます。

ライセンス: CC-BY-SA帰属
所属していません StackOverflow
scroll top