【发布时间】:2014-04-09 14:54:47
【问题描述】:
在可以改变其引用的字段上进行同步的情况,如下所述:
class A {
Object someObject;
void method(){
synchronized (someObject) {
Object newObject = new Object();
//possibly modify the old ref
if(chackCondition()){
someObject = newObject;
}
}
}
}
我担心这里可能缺少一些奇怪的低级编译器优化,这可能会让两个线程同时访问同步区域。任何 cmets 都会非常感激。
【问题讨论】:
-
那你为什么不使用另一个对象作为锁呢?
-
这只是一个例子,让我思考。我知道我应该使用
ReenetrantLock或其他锁定对象,但这只是为了我的理解
标签: java multithreading synchronization