スレッドのセキュリティ


スレッドセキュリティの重要な考え方は,マルチスレッドが同時に問題を起こさないことである.
マルチスレッドが同時に発生する問題は、臨界リソース、すなわち状態のある共通リソースである.これらの共通リソースへのアクセスがスレッド反発である場合、スレッドは安全であり、そうでない場合、スレッドは安全ではありません.
例:


Class A{

int temp;
public void setTemp(int i){
    temp =i;
}
public int getTemp(){
return temp;
}

tempはクラスAのインスタンスのステータスのあるパブリックリソースではありませんが、どのような場合ですか?複数のスレッドが1つのクラスAのインスタンスにアクセスする場合、すべてのクラスA内のtempへのアクセス方法はsynchronizedである必要があります.
逆に、各スレッドにクラスAのインスタンスがある場合、tempは共通リソースではありません.
スレッドセキュリティに関する比較的包括的な説明はjavaネットワークプログラミング第3版、138ページを参照してください.