多用户并发操作一条记录的锁定机制

版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.csdn.net/IUPRG/article/details/19938441

在网络系统实际开发中,经常会碰到这种情况:

多个登陆用户可能会同时修改同一条记录

这样可能会发生:

1) a用户在加载完记录后,b修改保存了数据,对于a来说他的数据被覆盖了;

2)a用户看到的是相对于b修改后比较旧的数据

通常解决办法是设置悲观锁和乐观锁

悲观锁的优点是保证了数据不丢失和一致,缺点是降低了性能;

乐观锁的优点是增加了程序可操作性和可移植性,提高了并发性能,缺点是需要控制好事务并且浪费了用户刚刚输入的数据(因为作废了)


乐观锁,一般使用版本控制法,就是加一个version这样的属性,修改时读出来,保存时和现有version比较,如果一致则保存,同时写入一个新的version;

如果不一致,则回滚并提示“您修改的数据已经过时”,重新读取数据记录再次修改保存之。

猜你喜欢

转载自blog.csdn.net/IUPRG/article/details/19938441