「タスク」クラスのように機能するクラスに、以下のようなコードがあります。このクラスの複数のインスタンスを作成し、threadpool
class Task {
public void doJob() {
String s = informationDto.getName();
}
}
DTO:
class InformationDto{
private String name;
public getName(){}
public setName(String n){}
}
informationDto.getName();
発言が気になります。マルチスレッド環境では常に正しい名前が返されますか?
getName()
メソッドが静的な場合はどうなりますか?
私が作成しているすべてのクラスinformationDto
にそれぞれを使用したい。Task
これを行う最良の方法は何ですか?
1)クラスInformationDto
ごとに 1 つ保持したい。Task
2) インスタンス変数はスレッドセーフではないのでgetName()
、メソッドにアクセスするかどうか疑問に思っています (インスタンス変数であるため)、クラスname
に設定した正しい名前を取得できますか? Task
3)クラス内でutilクラスを使用するTask
と、スレッドセーフになりますか?そうでない場合、スレッドセーフな方法でユーティリティインスタンスの種類を使用するにはどうすればよいですか?