[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
[jfriends-ml 10829] Re: DecimalFormat とか もスレッドセーフではない?
村山@NETGENEです.
> 今個人的に一番問題なDecimalFormatについて、簡単に試してみたところ、
> うちの環境では、同期なしで
> formatはOK、parseはNG
> でした。
ひょっとして,デュアルCPUマシンをお持ちですか?金持ちだこと.(^^)
こういうテストは1CPUマシンじゃ辛いですからねえ.
#1CPUだとformat()への完全な同時アクセスが,まず実現できない.
#この手のトラブルを経験するには,最低でも2CPU以上のマシンが必要になる.
#お約束のパターンは,1CPUの開発環境で十分にテストしてバグがないことを
#確認した後に,2CPU以上の実機で動かした途端にバグが出て恥をかくというもの.
##さらに最悪なのは実運用が開始されたあとにバグが出るパターン.
> う〜ん。。。
> マニュアルにも同期が必要と書いているし、
> Format系は、スレッドセーフでないものとして使うのが正しいか。
極端な話,たとえ現在の実装では実はスレッドセーフになっていたとしても,
仕様書において「スレッドセーフでない」と書いてあるものは将来の実装に
おいてスレッドセーフでなくなる場合がありえます.
そうなると,その時点でバグが表面化してデバッグに苦労する羽目になります.
仕様書に「スレッドセーフでない」と書かれてる以上は,そのように
扱うべきでしょう.
#というより,スレッドセーフなクラスだったら,大抵の場合は
#使うのをやめますね.私なら.厄介なだけ.
--
村山敏清 株式会社ネットジーン 〒164-0001
東京都中野区中野3-33-3 インツ中野ビル 5F
E-mail:murayama@xxxxxxxxxxxxx
TEL:(03)5328-3670 FAX:(03)5328-3673
http://www.netgene.co.jp/