首页
IT培训常见问题
企业资讯
学员活动
师资团队
图书教材
发布 : Java培训 发布时间:2021-10-12 17:27:15
synchronized由方法调用指令读取运行时常量池中方法的 ACC_SYNCHRONIZED 标志来隐式实现的,Java 虚拟机中的同步(Synchronization)基于进入和退出管程(Monitor)对象实现, 无论是有明确的 monitorenter 和 monitorexit 指令,即同步代码块的显式同步还是隐式同步都是同理。
synchronized是JVM内置锁,通过内部对象Monitor(监视器锁)来实现,基于进入与退出monitor对象来实现方法与代码块的同步,监视器锁的实现,最终依赖操作系统的Mutex lock(互斥锁)来实现。
synchronized关键字3种应用方式
修饰实例方法,作用于当前实例加锁,进入同步代码前要获得当前实例的锁
修饰静态方法,作用于当前类对象加锁,进入同步代码前要获得当前类对象的锁
修饰代码块,指定加锁对象,对给定对象加锁,进入同步代码库前要获得给定对象的锁。
Synchronized是通过对象内部的一个叫做监视器锁(monitor)来实现的,监视器锁本质又是依赖于底层的操作系统的Mutex Lock(互斥锁)来实现的。
咨询还可获得
对应免费课程