synchronized原理

synchronized是干啥的,主要原理是什么

发布 : Java培训   发布时间:2021-10-12 17:27:15

品牌型号:联想小新Pro13/系统版本:windows10

synchronized由方法调用指令读取运行时常量池中方法的 ACC_SYNCHRONIZED 标志来隐式实现的,Java 虚拟机中的同步(Synchronization)基于进入和退出管程(Monitor)对象实现, 无论是有明确的 monitorenter 和 monitorexit 指令,即同步代码块的显式同步还是隐式同步都是同理。

synchronized是JVM内置锁,通过内部对象Monitor(监视器锁)来实现,基于进入与退出monitor对象来实现方法与代码块的同步,监视器锁的实现,最终依赖操作系统的Mutex lock(互斥锁)来实现。

synchronized关键字3种应用方式

修饰实例方法,作用于当前实例加锁,进入同步代码前要获得当前实例的锁

修饰静态方法,作用于当前类对象加锁,进入同步代码前要获得当前类对象的锁

修饰代码块,指定加锁对象,对给定对象加锁,进入同步代码库前要获得给定对象的锁。

其它答案
牛仔很忙2020-06-22 18:56:36

Synchronized是通过对象内部的一个叫做监视器锁(monitor)来实现的,监视器锁本质又是依赖于底层的操作系统的Mutex Lock(互斥锁)来实现的。


 相关推荐