目录

锁类型

操作系统层面

乐观锁

先尝试,认为没有其他在竞争。如果执行失败(有其他人在竞争)。再重试一次。如: CAS 操作

悲观锁

先锁定资源,不管是否有其他人在竞争。 如:synchronized

获取锁的方式

自旋

进入队列等待

java中锁synchronized

锁的状态总共有四种:无锁状态、偏向锁、轻量级锁和重量级锁。随着锁的竞争,锁可以从偏向锁升级到轻量级锁,再升级的重量级锁(但是锁的升级是单向的,也就是说只能从低到高升级,不会出现锁的降级)。JDK 1.6中引入偏向锁和轻量级锁的,优化synchronized的底层实现