テストしてからセットします。 - テスト・アンド・セット - Test-and-Set
2009/01/31
java
アトミックに処理できることを保証したのちに、変数をテストして、セットできるならセットします。
えーと、Javaならどうなんだろう。
あるオブジェクトをシンクロナイズドしたのちに、テストしてセットかな。
package testandset;
public class Main {
class A {
String s;
}
A a = new A();
public static void main(String[] args) {
}
public Main(){
new Main().a();
}
void a(){
synchronized (a) {
// テストして
if("F".equals(a.s)){
// セット
a.s = "T";
}
}
}
}
public class Main {
class A {
String s;
}
A a = new A();
public static void main(String[] args) {
}
public Main(){
new Main().a();
}
void a(){
synchronized (a) {
// テストして
if("F".equals(a.s)){
// セット
a.s = "T";
}
}
}
}
: