乐观锁的常规操作
select rev from table where id = $id
update table set name=$name, rev=rev+1 where id = $id and rev=$rev
此时有两个线程a和b来修改用户名
分成4中情况
1、

ab
select rev from table where id = $idselect rev from table where id = $id
update table set name=$name, rev=rev+1 where id = $id and rev=$rev  rev=2
update table set name=$name, rev=rev+1 where id = $id and rev=$rev  失败


ab
select rev from table where id = $idselect rev from table where id = $id
update table set name=$name, rev=rev+1 where id = $id and rev=$rev  rev=2
update table set name=$name, rev=rev+1 where id = $id and rev=$rev  失败


ab
select rev from table where id = $id
update table set name=$name, rev=rev+1 where id = $id and rev=$rev rev=2
select rev from table where id = $id
update table set name=$name, rev=rev+1 where id = $id and rev=$rev rev=3


ab
select rev from table where id = $id
update table set name=$name, rev=rev+1 where id = $id and rev=$rev rev=2
select rev from table where id = $id
update table set name=$name, rev=rev+1 where id = $id and rev=$rev rev=3

yinpursue
1 声望0 粉丝