次のようなコードをよく見かけます。
Listener mListener;
public void setListener(Listener listener){
mListener=listener;
}
public void fooFunction(){
...
...
if (mListener!=null){
mListener.notifyFoo();
}
}
私の質問は次のとおりです。null チェックと notifyFoo() の間で別のスレッドが setListener(null) を呼び出した場合はどうなりますか? それは可能ですか?またはコンパイラはそれをアトミックにしますか