开发者社区 问答 正文

说一下 Synchronized 底层实现原理?

说一下 Synchronized 底层实现原理?

展开
收起
问问小秘 2020-01-03 14:04:09 1307 分享 版权
来自: Java开发者
1 条回答
写回答
取消 提交回答
  • java中虚拟机中的同步synchronization synchronization 基于进入和退出管程(monitor)对象实现,无论是显示同步(有明确的monitroenter和monitorexit指令,即同步代码块)还是隐式同步都是如此

    synchronization可以保证方法或者代码块在运行时,同一时刻只有一个方法可以进入到临界区,同时它还可以保证共享变量的内存可见性。

    java中每一个对象都可以作为锁,这是synchronization实现同步的基础:

    普通同步方法,锁是当前实例对象

    静态同步方法,锁是当前类的class对象

    同步方法块,锁是括号里面的对象

    2020-01-03 14:04:19
    赞同 1 展开评论
问答地址: