は、私は次のように機能を持っている:スレッドセーフであるかどうかをチェックするために使用できるメソッドのプロパティは?例えば
public static final Function<A,B> MAP_A_TO_B(){
return new Function<A,B>() {
@Override
public B apply(A) {
switch (A) {
case 1:
return B1;
case 2:
return B2;
}
return B0;
}
};
}
をしかし、それは方法は、任意のクラス変数への書き込みがないので、私の理解、それが必要として、スレッドセーフであるかどうかはわかりません安全です。私の仮定は正しいのですか?
ありがとうございました。
? – davmac
データを読み取るメソッドは、別のスレッドが書き込むことができるデータを読み取る場合でも、スレッドセーフではありません。結局のところ、メソッドが直接的または間接的にアクセスしているデータを変更する可能性のある他のスレッドが少なくとも1つ存在するかどうかを分析する必要があります。あなたのケースでは、それは 'B1'などが何であるかに依存します。もしそれらが別のスレッド(例えば、誰かが' B1'と 'B2'を入れ替えることができる)に置き換えられれば、スレッドセーフではありません。 – Thomas
@davmac私はMAP_A_TO_Bメソッドを参照しています – Xitrum