Java のマルチスレッドに関する本を読んだ
並行処理に限る訳ではないけど、ここに挙げた本読めば Java でそこそこ安全にマルチスレッドなプログラム書けそうな気がしてくる。 まぁ実際並行・並列処理は量書いて身につけないとしょうがないけど…
ぶっちゃけて言えば、読む前から変わらなかった意見は「並行・並列処理書くならメッセージパッシングの言語機能なりライブラリを持った言語で書くのが一番良いだろうな」だった。Go とか Scala とか Erlang とか。
まぁでも Stream API とか使えば結構カジュアルに並列処理できて便利という事が分かったので便利。 Java 8 になって Concurrency Utilities も色々強化されてるみたいなのでおさらいすると楽しそう。
Javaによる関数型プログラミング ―Java 8ラムダ式とStream
- 作者: Venkat Subramaniam,株式会社プログラミングシステム社
- 出版社/メーカー: オライリージャパン
- 発売日: 2014/10/24
- メディア: 単行本(ソフトカバー)
- この商品を含むブログ (3件) を見る
- 作者: ティムリンドホルム,フランクイェリン,Tim Lindholm,Frank Yellin,村上雅章
- 出版社/メーカー: ピアソンエデュケーション
- 発売日: 2001/05
- メディア: 単行本
- 購入: 5人 クリック: 98回
- この商品を含むブログ (35件) を見る
Java 仮想マシン仕様は飛ばし読み(ニーモニック一覧の所とか)。 並行・並列処理に関しては8章のスレッドの部分。
あと定番のやつ。 もう一度読み直したい。
Effective Java 第2版 (The Java Series)
- 作者: Joshua Bloch,柴田芳樹
- 出版社/メーカー: ピアソンエデュケーション
- 発売日: 2008/11/27
- メディア: 単行本(ソフトカバー)
- 購入: 77人 クリック: 936回
- この商品を含むブログ (266件) を見る
Java並行処理プログラミング ―その「基盤」と「最新API」を究める―
- 作者: Brian Goetz,Joshua Bloch,Doug Lea
- 出版社/メーカー: ソフトバンククリエイティブ
- 発売日: 2006/11/22
- メディア: 単行本
- 購入: 30人 クリック: 442回
- この商品を含むブログ (176件) を見る
ちなみに
並行性と並列性について簡潔な説明が Oracle の公式ドキュメントにあるのを見つけた。
さらに
もっと詳しく知りたい人は以下の記事が公式ドキュメントへのリンクとその内容を例を交えて分かりやすく解説してくれてらっしゃる神記事なのでどうぞ。
マルチコア時代に備えて本気でメモリモデルを理解しておこう - リオーダー & finalフィールド 編 - - じゅんいち☆かとうの技術日誌