[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/