プログラマーのテストから次のコードを取得しました
private String formatDate(Date date)
{
String result = "";
//….
SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd");
result = sdf.format(date);
//…
return result;
}
複数のスレッドが一度にメソッドを使用しているという追加情報とともに。これに問題はありますか?
私の答えは、いいえ、問題ないはずです (//... の部分で他に何も起こっていないと仮定して)。
私の動機は、グローバルまたはクラスのデータ構造が使用されていないことです。日付は各トレッドからパラメーターとして渡され、メソッド内ではローカル変数とローカル オブジェクトのみが使用されます。したがって、各スレッドは、SimpleDateFormat クラスの独自のオブジェクト インスタンスを取得して使用します。
しかし、これはテストの「正解」ではありませんでした。「正しい」答えは、クラス SimpleDateFormat はスレッド セーフではないため、そのオブジェクトへのアクセスを同期する必要があるということです。
それで、私または解決策は正しいですか?