Java锁:synchronized和lock

如果同一个对象有两个方法会对同一个资源p进行操作,一个方法用synchronized修饰,另一个方法用lock,这个资源p有被锁住吗

就比如一个set方法用syn,一个get方法用lock,然后一个线程去set,一个线程去get,会出现什么情况

1个回答

锁不住
synchronized是以对象头标识来做到互斥的;
lock锁定是内部AQS办到的;
这两个维护的不是同一个同步队列,所以不会互斥的;

而且就算都要synchronized锁定,如果锁定对象不一样,也不会互斥的;
非静态方法上的synchronized锁定对象是this,静态方法上的锁定对象是Class对象实例;
所以一个类里面的静态同步方法和非静态同步方法也是不互斥的;

希望对你有帮助...

Csdn user default icon
上传中...
上传图片
插入图片
抄袭、复制答案,以达到刷声望分或其他目的的行为,在CSDN问答是严格禁止的,一经发现立刻封号。是时候展现真正的技术了!
立即提问