悲观锁:在锁占用期间阻塞其他线程进入代码块,应用于写多读少的场景;
乐观锁:不会阻塞其他线程进入代码块,在更新时会比较版本,应用于读多写少的场景;
互斥锁:在占用期间,其他线程会加锁失败,属于悲观锁;
共享锁:是多个事务能够同时持有一把锁,只有持有该锁的所有事务结束锁才会释放,应用场景比如说数据库连接池;
分段锁:是将一个大的资源拆分成多个小的资源,小资源各自加锁用来提高效率,比如concurrentHashMap的实现;
间隙锁:是数据库中范围检索时,对符合条件的数据进行加行锁,对于符合条件但不存在的记录会加间隙锁防止幻读和数据误删。