アプリ版:「スタンプのみでお礼する」機能のリリースについて

スレッドセーフなクラス一覧が分かるWebサイトや、そのクラスがスレッドセーフかどうか知る方法を探しています。

複数スレッドで共有オブジェクトにアクセスする際に、synchronizedブロックをかけるのですが、そのオブジェクトがスレッドセーフかどうかすぐに分かる方法があると便利だなぁと思って探しています。

例えば、Stringはスレッドセーフ、SimpleDateFormatはアンスレッドセーフ等の情報が一覧で欲しいと思っています。

なるべく多くのクラスを網羅していればそれだけありがたいです。

ご存知の方がおられましたら教えてください。
よろしくお願いします。

A 回答 (1件)

 たしかにそういったリストがあれば便利だけれど実用になるほどの数を網羅したものは多分ない。


 最もそれに近いものは各クラスのドキュメントそのものだと思う。ドキュメントにスレッドセーフである旨が記載されているもの以外はスレッドセーフではないとして取り扱うべき。何も書かれていなくてもスレッドセーフである可能性もあるかもしれないが、そうでないものをそうであるかのように扱うよりはマシ。判断が必要なら面倒がらずドキュメントを参照しよう。
 スレッドセーフであることはそのクラスのソースがあってもぱっと見る程度では簡単なものならいざ知らず中々判断がつき難い。「でない」ことを判断するのはそれよりは簡単だが。クラスの設計者や実装者がスレッドセーフであるとして作成してドキュメントに明記したかどうかで判断するのが一番簡単だと思う。
 ところでStringのAPIドキュメントにはスレッドセーフとは書かれていないが、定数とかイミュータブルであることが書かれているのでスレッドセーフであるとして扱える。判断するときはこういったワードにも注意するといい。

この回答への補足

回答ありがとうございます!

うーむ。やはり無いんでしょうかねぇ。
確かにスレッドセーフ、イミュータブル等で検索した限りでは見つけられなかったです。

補足日時:2010/02/24 23:35
    • good
    • 0
この回答へのお礼

今更ですがありがとうございました。

お礼日時:2013/01/06 22:25

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!