1、自旋锁,自旋,jvm默认是10次,由jvm自己控制,for去争取锁
2、阻塞锁 被阻塞的线程,不会争夺锁
3、可重入锁,多次进入改锁的域
4、读写锁
5、互斥锁,锁本身就是互斥的
6、悲观锁,不相信这里是安全的,必须全部上锁
7、乐观锁,相信这里是安全的
8、公平锁,有优先级的锁
9、非公平锁,无优先级的锁
10、偏向锁,无竞争不锁,有竞争挂起,转为轻量锁
11、对象锁,锁住对象
12、线程锁
13、锁粗化 ,多锁变成一个,自己处理
14、轻量级锁 ,CAS实现
15、锁消除 ,偏向锁就是锁消除的一种
16、锁膨胀 , jvm实现,锁粗化
17、信号量,使用阻塞锁实现的一种策略
18、排他锁(不包含),X锁,若事务T对数据对象A加上x锁,则只允许T读取和修改A,其他任何事务都不能再对A加任何类型的锁,直到T释放A上的锁。这就保证了其他事务在T释放A上的锁之前不能再读取和修改A