• ベストアンサー

サーブレット スレッドセーフについて

サーブレットのインスタンス変数、クラス変数はスレッドセーフではありませんが、 doGet などのほかに勝手に作ったメソッドは、スレッドで動作するのでスレッドセーフと考えていいでしょうか?

質問者が選んだベストアンサー

  • ベストアンサー
  • KDASH-XP
  • ベストアンサー率45% (62/135)
回答No.2

#1の補足ですが、syncronizedなどにより、別スレッドでの更新を考慮して、変数の整合性を保つように設計されていれば、クラス変数(オブジェクト)であってもスレッドセーフと呼びます。 Vector =スレッドセーフ ArrayList=非スレッドセーフ なんかですね。

noname#101202
質問者

お礼

なるほど、 私の今回の場合、 そのメソッド内でやっていることをよく分析すると、大丈夫そうです。

その他の回答 (1)

  • KDASH-XP
  • ベストアンサー率45% (62/135)
回答No.1

関数は関数自体・変数もスタックにおかれるから、別スレッドで上書きされる心配がない...という点で「スレッドセーフ」と考えた方がいいかと思います。 スレッドで動作するから...というのであれば、クラスの変数もスレッドで動作しているわけですから。 色々なスレッドから参照・更新されるのが問題と思えば良いかと思います。

noname#101202
質問者

お礼

なるほど、さんしょうですね。

関連するQ&A