美文网首页
Synchronized

Synchronized

作者: JavaHub | 来源:发表于2018-03-16 13:54 被阅读0次

    概念

    • Synchronized在JVM的实现原理,基于进入和退出Monitor对象来实现方法同步和代码块同步
    • JVM通过 monitorenter 和 monitorexit 两个指令来实现
    • monitorenter指令是在编译后插入到同步代码块开始位置; monitorexit指令是插入到方法结束处和异常处;JVM要保证每个monitorenter必须有对应的monitorexit与之配对
    • 任何对象都有一个monitor与之关联:
      1.当且一个monitor被持有后,对象处于锁定状态
      2.线程执行到monitorenter指令时,尝试获取对象对应的monitor的所有权,即尝试获取对象的锁

    表现为以下三种形式

    • 对于普通同步方法,锁是当前实例对象
    • 对于静态同步方法,锁是当前类的Class对象
    • 对于同步方法块,锁是Synchronized括号里配置的对象

    使用

    • 参考上面的三种表现形式

    相关文章

      网友评论

          本文标题:Synchronized

          本文链接:https://www.haomeiwen.com/subject/wxplqftx.html