加了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,锁的都是自己,,,,,
--------------------编程问答--------------------
--------------------编程问答-------------------- 估计就是这个问题。 --------------------编程问答-------------------- 不对,我试过了不对。
而且想下就知道不对,因为synchronized本身锁的就是实例,相当于this锁,这种情况是正确的。
为什么lock就要用static,这种思路肯定是不对的,
为什么会出现这种情况,还需要高人指点?
补充:Java , Java SE