synchronized加锁方式
大致三种
锁对象
锁this指针,当前对象
锁类.class
synchronized的原理
底层主要是有monitor对象,获取锁时判断标志位是否为0,为0则进入临界区对应的指令monitorenter,
获得锁后标志位改为1,其它线程获取锁发现标志位1,进入阻塞状态,直到临界区线程出来是标志位-1变为0对应的指令monitorexit
大致三种
锁对象
锁this指针,当前对象
锁类.class
底层主要是有monitor对象,获取锁时判断标志位是否为0,为0则进入临界区对应的指令monitorenter,
获得锁后标志位改为1,其它线程获取锁发现标志位1,进入阻塞状态,直到临界区线程出来是标志位-1变为0对应的指令monitorexit