乐观锁
乐观锁顾名思义比较乐观,只有在更新数据的时候才会检查这条数据是否被其他线程更新了(这点与悲观锁一样,悲观锁是在读取数据的时候就加锁了)。
如果更新数据时,发现这条数据被其他线程更新了,则此次更新失败。
如果数据未被其他线程更新,则更新成功。
由于乐观锁没有了锁等待,提高了吞吐量,所以乐观锁适合多读少写的场景。
悲观锁
悲观锁是基于一种悲观的态度类来防止一切数据冲突
以一种预防的姿态在修改数据之前把数据锁住;
然后再对数据进行读写,在它释放锁之前任何人都不能对其数据进行操作
直到前面一个人把锁释放后下一个人数据加锁才可对数据进行加锁,然后才可以对数据进行操作,一般数据库本
身锁的机制都是基于悲观锁的机制实现的;