java synchronized底层原理

合集下载
  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

java synchronized底层原理
synchronized底层原理:
synchronized使用的是对象级别的锁,也称为监视器锁 (Monitor Lock),它是通过Java的指令monitorenter和monitorexit实现的,锁
的实现原理是:当一个线程访问对象的synchronized方法时,其他线程
无法访问该对象的其他synchronized方法。

当一个线程获取了对象的锁,它就可以在该对象范围中执行所有synchronized方法,而该对象其他线
程无法执行任何synchronized方法,直到获取了该对象的锁。

具体过程:当线程A进入synchronized代码块或方法时,它会尝试
获取对象锁,如果线程A获取了对象的锁,它就可以继续执行,否则它就
会在对象锁处等待,直到线程B释放锁以后,线程A才能继续执行。

而线
程B也是同样的,当它执行到被synchronized修饰的代码块或方法时,
它会尝试获取该对象的锁,如果获取到,它可以继续执行,否则就需要等
待线程A释放锁之后,线程B才能继续执行。

因此,就保证了在某时刻,
同一个对象的synchronized方法只能由一个线程访问,从而保证了安全性。

相关文档
最新文档