天天看点

简单介绍synchronized底层原理synchronized加锁方式synchronized的原理

synchronized加锁方式

大致三种

锁对象

锁this指针,当前对象

锁类.class

synchronized的原理

底层主要是有monitor对象,获取锁时判断标志位是否为0,为0则进入临界区对应的指令monitorenter,

获得锁后标志位改为1,其它线程获取锁发现标志位1,进入阻塞状态,直到临界区线程出来是标志位-1变为0对应的指令monitorexit