私は並行性に関するさまざまな部分を読みましたが、さまざまなアプローチを詳細に比較する単一のリソースを見つけることを望んでいました。理想的には、スレッド、コルーチン、メッセージパッシング、アクター、先物など、私がまだ知らない新しい可能性のあるものは何でも取り入れます。
明らかに理論的/数学的なものよりも、素人コーダーガイドを好むでしょう。
ありがとうございました。
私は並行性に関するさまざまな部分を読みましたが、さまざまなアプローチを詳細に比較する単一のリソースを見つけることを望んでいました。理想的には、スレッド、コルーチン、メッセージパッシング、アクター、先物など、私がまだ知らない新しい可能性のあるものは何でも取り入れます。
明らかに理論的/数学的なものよりも、素人コーダーガイドを好むでしょう。
ありがとうございました。
Pachecoによる並列プログラミング入門をお勧めします。それは明確に書かれており、並列プログラミングの良い入門書です。
何かが言語に結び付けられていることを気にしないのであれば、JavaConcurrencyinPracticeは素晴らしいリソースです。
Oracleのオンラインチュートリアルは無料ですが、おそらくあなたが探しているものよりも少し簡潔です。
そうは言っても、並行性の最良の教師はおそらく経験です。自分で練習してみようと思います。食事する哲学者の問題のシミュレーションを行うことから始めます。それは古典的です。
まず、そのトピックに興味があるかどうかを見てみましょう。同時実行性の全体像を把握するには、Stalingsの内部オペレーティングシステムやTanenbaumの最新オペレーティングシステムなどのオペレーティングシステムの書籍を参照することをお勧めします。彼らはあなたにこれが何であるかについての直感を与えることができます。
Ben-Ariによる並行プログラミングという名前の古い本もあります。あなたがそれを見つけたなら、それは役に立つかもしれません。
教科書を読む以外に、いくつかの並行プログラムを書いて手を汚すのは良いことです。スレッドの使用を開始したい場合は、Pythonが非常に適しています。すべてのPythonの本には、このトピック専用の部分があります。また、Webで簡単に検索すると、それに関する多くのリソースを見つけることができますが、私はこれら2つの優先順位を高くします。
マルチスレッドプログラミング(POSIX pthreadsチュートリアル)、並行性とマルチスレッドの非常に包括的な紹介。それは主にCマルチスレッドについてです。
もう1つは、Pythonのスレッド同期メカニズムです。
それでも並行プログラミングに興味がある場合は、さらに深く掘り下げてみましょう。並行性の基本的な知識はほぼありますが、現時点での最善のアプローチは、問題の解決を開始し、パターンに精通することです。この目標を達成するために、The Little BookofSemaphoresを使用できます。これは、この分野で最高の本の1つであり、無料でもあります。これは、並行プログラミングに習熟するためにあなたを導くことができる本です。アプローチ
したい場合はこれらで十分です並行プログラミングですが、十分な時間があり、熱心な場合は、Erlangで使用されているアクターなど、並行プログラミングの他のパラダイムを確認することをお勧めします。「 SevenLanguagesinSeven Weeks 」という本のいくつかの章、特にErlangとIOに関する章を読む価値があると思います。一見、難しくて奇妙かもしれませんが、並行性に対する他のソリューションに精通することは良いことです。
Peter VanRoyとSeifHaridiによるコンピュータープログラミングの概念、技法、モデルをお勧めします。すべての主要なプログラミング手法には、並行プログラミングに関するフォローアップセクションがあります。また、作成者は基本から始めて、主要な並行プログラミングの概念とその欠点を定義します。これらはすべて、Ozプログラミング言語の例を伴います。
もしあなたがたまたまC#プログラマーであるか、あるいはいつかは、MichalHabalcikによるこのチュートリアルシリーズを強くお勧めします。