悲观锁:利用db内部机制提供的锁的方法,也就是对更新的数据加锁。
并发期间,如果一个事务持有了DB记录的锁,那其他的线程就会被挂起,将不能再对数据进行更新,只能等待资源的释放。也称为阻塞锁,
乐观锁(非阻塞锁):不会阻塞其他进程的并发直行。所以不会引发线程的频繁挂起和恢复。使用的是CAS原理。
CAS原理的具体实现:表中有一个版本字段,第一次读的时候,获取到这个字段。处理完业务逻辑开始更新的时候,需要再次查看该字段的值是否和第一次的一样。如果一样更新,反之拒绝。 (如果只是查询的话,不需要比较)
之所以叫乐观,因为这个模式没有从数据库加锁。
悲观锁和乐观锁
最新推荐文章于 2022-03-29 07:52:46 发布