最近因为数据加锁,想起来以前面试问的乐观锁和悲观锁。在这里分享一下两个老流氓解读的过程。
总结起来就是一句话,乐观锁就像是群P,大家都在玩,但是jd的只有一个。悲观锁就是,我先锁门再办事,我走了下一个再进来继续锁门办事。
乐观锁往往需要借助一个独立字段,比如version(int类型)
update table set field=value,version=n+1 where version=n and ...
查询的时候取version,然后更新的时候就看谁快了。
悲观锁
select * from table for update
select ... for update 语句可以看看这个文章https://www.cnblogs.com/jpfss/p/9225434.html