ほげほげ

ようやく(仮)が取れたらしい。他愛もないことを書いてみるのです。

Singletonって

Javaで開発してた昔、とりあえずメモリ消費量削減などのため極力Singletonパターンでクラス実装してたのですが、あの書き方ってマルチスッドレ環境では2重にインスタンス生成される可能性があったと言うことをつい昨日知りました。Javaの格言などに書かれてるSingletonパターンではNullチェックをしている最中にもう1スレッドがそこに突入するとまずい、みたいな(今出てる本では修正されてるのかな?)。今はprivate static finalな宣言をしておいて即そこでnewしちゃうのが一般的、みたいな。
あの〇〇〇なプログラムはそんなところにも欠点があったのではなかろうかと。
200回中3回再現しました!みたいなバグが雨後タケノコのごとく発生してましたからなあ。
Javaで開発することがあれば、それ(Singleton実装方法)だけは気をつけたいと思いました。
あーしかしJ2EE開発って効率いいのかなあ。甚だ疑問。