当前位置:编程学习 > JAVA >>

加了lock却不能同步

class ExplicitPairManager1 extends PairManager{
private Lock lock = new ReentrantLock();
public void increment() {
lock.lock();
try{
p.incrementX();
p.incrementY();
store(getPair());
}finally{
lock.unlock();
}
}
}
这段代码我测试过了,我明明已经加了显示锁,却不能实现同步,还必须在increment()方法上加了synchronized关键字,为什么呀? 线程同步 --------------------编程问答-------------------- lock 用static类型的,不然每个对象都有个自己的lock,锁的都是自己,,,,,

--------------------编程问答--------------------
引用 1 楼 rainbowsix 的回复:
lock 用static类型的,不然每个对象都有个自己的lock,锁的都是自己,,,,,


--------------------编程问答--------------------
引用 1 楼 rainbowsix 的回复:
lock 用static类型的,不然每个对象都有个自己的lock,锁的都是自己,,,,,
估计就是这个问题。 --------------------编程问答-------------------- 不对,我试过了不对。
而且想下就知道不对,因为synchronized本身锁的就是实例,相当于this锁,这种情况是正确的。
为什么lock就要用static,这种思路肯定是不对的,
为什么会出现这种情况,还需要高人指点?
补充:Java ,  Java SE
CopyRight © 2022 站长资源库 编程知识问答 zzzyk.com All Rights Reserved
部分文章来自网络,