• 締切済み

JAVAのスレッドセーフとは

スレッドセーフについて質問です。 インスタンス変数はヒープ領域に保持されるのでスレッドセーフではないという説明は分かりました。 しかし、そうするとDTOのようにgetterとsetterを持ってるクラスはインスタンス変数ばかりなので、スレッドセーフではないということになるのでしょうか? スレッドセーフなDTOを作りたいときは、どのようにすれば良いのでしょうか?

みんなの回答

  • wormhole
  • ベストアンサー率28% (1626/5665)
回答No.2

ThreadLocalを用いるという手はなくもないです。

  • t_ohta
  • ベストアンサー率38% (5292/13827)
回答No.1

Singleton にする

hiroko_ig
質問者

お礼

ありがとうございます。 Singletonというのがあるのですね。 調べて何となく理解出来ました。 DTOに何百件もデータを入れるので、スレッドセーフじゃないとデータが書き換えられてしまうのではないかと思いました。 Singletonで作るようにしてみます。

hiroko_ig
質問者

補足

Singletonを作りましたが、DTOのインスタンスが1つしか出来ないので使えないことが分かりました。 スレッドセーフというのはそういう意味ではなくて、複数のスレッドで動いても問題が起きないということです。

関連するQ&A