今日の役に立たない一言 - Today’s Trifle! -

古い記事ではさまざまなテーマを書いていますが、2007年以降はプログラミング関連の話がほとんどです。

マルチスレッドプログラミングの話

id:hyuki さんが結城浩の日記の中で、すばらしい本に仕上がっていますと書いてあるのを見て、思い出したのが、developerWorksJavaの理論と実践: JDK 5.0における、より柔軟でスケーラブルなロックと言う記事。結城さんがこういった内容に触れているかどうかは分からないけど、これはこれで重要な情報だ。念のため、最後の「まとめ」の部分を引用しとく。

Lockフレームワークは同期と互換性を持つ置き換えであり、synchronizedには無い多くの機能を持ち、競合状態下でも高いパフォーマンスが得られる実装が可能です。ところがこうした明確な利点だけでは、synchronizedの代わりに常にReentrantLockを使うべきだということにはなりません。むしろ、ReentrantLockの力が本当に必要か どうかに基づいて判断を下すべきです。圧倒的大部分の場合において、は必要ないはずです。同期でも充分に用が足りるのであり、同期ならばどんなJVMでも動作し、大多数の開発者が理解している上、間違いも起こしにくいのです。本当に必要になるまでLockはしまっておくべきです。そして本当に必要になった時には、Lockがあって良かったと思うでしょう。

それから、Java並列プログラミングTipsというページも秀逸。結城さんの本はデザインパターンの観点で書かれているけど、こちらは並列プログラミングをするときに知っておくべき基本的な情報が書かれている。オススメのページだ。